From: | Magnus Hagander <magnus(at)hagander(dot)net> |
---|---|
To: | Greg Stark <stark(at)mit(dot)edu> |
Cc: | "<pgsql-hackers(at)postgresql(dot)org>" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Explain analyze getrusage tracking |
Date: | 2010-11-22 12:40:53 |
Message-ID: | AANLkTinVPqBk-83ZTm8RZ7VXFvYQ6-WF17335ro7FgHQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Nov 15, 2010 at 03:33, Greg Stark <stark(at)mit(dot)edu> wrote:
> This is an update to my earlier patch to add getrusage resource
> tracking to EXPLAIN ANALYZE.
>
> With this patch you get something like:
>
> QUERY PLAN
> --------------------------------------------------------------------------------------------------------------
> Seq Scan on i (cost=0.00..6919.44 rows=262144 width=101) (actual
> time=17.240..1123.751 rows=262144 loops=1)
> Resources: sys=210.000ms user=430.000ms read=33.6MB
> Buffers: shared read=4298
> Total runtime: 1548.651 ms
> (4 rows)
>
> The main change is to make it work under Windows. At least I think the
> changes should make it work under Windows, I haven't been able to test
> it. Actually I'm not to happy with the way I did it, I would be more
> inclined to hack the getrusagestub,h definition of struct rusage to
> have an instr_time in it so that we can use the same macros directly.
> But that's more changes than I would be happy making without being
> able to compile them to test them.
I tried building this under windows, and got a bunch of errors.
First and easiest - you need to rename IOCOUNTERS to IO_COUNTERS in
getrusage.c :P
But then I get a number of:
c:\pgsql\src\include\portability/instr_time.h(133) : error C2371: 'instr_time' :
redefinition; different basic types
and
.\src\backend\utils\adt\pgstatfuncs.c(1345) : error C2039: 'QuadPart' : is not a
member of 'timeval'
C:\Program Files\Microsoft SDKs\Windows\v6.1\include\winsock2.h(176) : s
ee declaration of 'timeval'
which believe are related to the same issue. Haven't looked close
enough to figure out what you actually intend for it to be :-)
Finally, a number of:
c:\pgsql\src\include\executor/instrument.h(19) : fatal error C1083: Cannot open
include file: 'sys/resource.h': No such file or directory
include files simply doesn't exist on Windows. Hiding it behind an
#ifdef complains about fields missing in struct rusage in some cases
and lack of existing rusage definition in others. I think you need
includes of pg_rusage.h, which will make sure it brings in
rusagestub.h when necessary and sys/resource.h when it's there?
--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2010-11-22 12:46:51 | patch: fix performance problems with repated decomprimation of varlena values in plpgsql |
Previous Message | Itagaki Takahiro | 2010-11-22 12:03:15 | format() with embedded to_char() formatter |