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-----