Re: Explain analyze getrusage tracking

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: Explain analyze getrusage tracking
Дата
Msg-id AANLkTinVPqBk-83ZTm8RZ7VXFvYQ6-WF17335ro7FgHQ@mail.gmail.com
обсуждение исходный текст
Ответ на Explain analyze getrusage tracking  (Greg Stark <stark@mit.edu>)
Ответы Re: Explain analyze getrusage tracking  (Greg Stark <stark@mit.edu>)
Список pgsql-hackers
On Mon, Nov 15, 2010 at 03:33, Greg Stark <stark@mit.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 amember of 'timeval'       C:\Program
Files\MicrosoftSDKs\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/


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Itagaki Takahiro
Дата:
Сообщение: format() with embedded to_char() formatter
Следующее
От: Pavel Stehule
Дата:
Сообщение: patch: fix performance problems with repated decomprimation of varlena values in plpgsql