Re: [PERFORM] Help with tuning this query (with

John A Meinel <[email protected]>
Newsgroups gmane.comp.db.postgresql.devel.win32,gmane.comp.db.postgresql.performance
Message-ID <[email protected]>
Tom Lane wrote:

>John A Meinel <[email protected]> writes:
>
>
>>>>Can we just replace gettimeofday() with a version that's basically:
>>>>
>>>>
>>>No, because it's also used for actual time-of-day calls.  It'd be
>>>necessary to hack executor/instrument.c in particular.
>>>
>>>
>
>
>
>>Or we modify the win32 gettimeofday call to something like:
>>
>>
>
>That's what Magnus was talking about, but it's really no good because
>it would cause Postgres' now() function to fail to track post-boot-time
>changes in the system date setting.  Which I think would rightly be
>considered a bug.
>
>The EXPLAIN ANALYZE instrumentation code will really be happier with a
>straight time-since-bootup counter; by using gettimeofday, it is
>vulnerable to giving wrong answers if someone changes the date setting
>while the EXPLAIN is running.  But there is (AFAIK) no such call among
>the portable Unix syscalls.  It seems reasonable to me to #ifdef that
>code to make use of QueryPerformanceCounter on Windows.  This does not
>mean we want to alter the behavior of gettimeofday() where it's being
>used to find out the time of day.
>
>			regards, tom lane
>
>
>

What if you changed the "initialized" to

if (count & 0xFF == 0) {
  count = 1;
  // get the new time of day
}
++count;

Then we would only be wrong for 256 gettimeofday calls. I agree it isn't
great, though. And probably better to just abstract (possibly just with
#ifdef) the calls for accurate timing, from the calls that actually need
the real time.

John
=:->
signature.asc (application/pgp-signature, 256 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCLI43JdeBCYSNAAMRAsOhAJ9D+CIcXiTShDZrxZE+E/TdNzqVWQCgiYza
Nj8wY5Jaeewh9gDWDsvR+Io=
=HBf/
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.