From: | John A Meinel <john(at)arbash-meinel(dot)com> |
---|---|
To: | Dave Held <dave(dot)held(at)arrayservicesgrp(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org, pgsql-hackers-win32(at)postgresql(dot)org |
Subject: | Re: [PERFORM] Help with tuning this query (with |
Date: | 2005-03-07 22:48:10 |
Message-ID: | 422CDA2A.1000105@arbash-meinel.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers-win32 pgsql-performance |
Dave Held wrote:
>There is always clock(). It's mandated by ANSI C, but my docs say
>that POSIX requires CLOCKS_PER_SEC == 1000000 regardless of actual
>timer resolution, which seems a little brain-dead to me.
>
>__
>David B. Held
>
>
My experience with clock() on win32 is that CLOCKS_PER_SEC was 1000, and
it had a resolution of 55clocks / s. When I just did this:
int main(int argc, char **argv)
{
int start = clock();
int now = start;
cout << "Clock: " << CLOCKS_PER_SEC << endl;
for(int i = 0; i < 10; ++i) {
while(now == clock()) {
// Do nothing
}
now = clock();
cout << now-start << "\t" << (now - start) / (double)
CLOCKS_PER_SEC << endl;
}
}
I got:
Clock: 1000
16 0.016
31 0.031
47 0.047
62 0.062
78 0.078
93 0.093
109 0.109
125 0.125
141 0.141
156 0.156
Which is about 1/0.016 = 62.5 clocks per second.
I'm pretty sure this is slightly worse than what we want. :)
It might be better on other platforms, but on win32 clock() is most
definitely *not* what you want.
John
=:->
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-03-07 22:56:39 | Re: [PERFORM] Help with tuning this query (with |
Previous Message | Dave Held | 2005-03-07 22:34:32 | Re: [PERFORM] Help with tuning this query (with explain analyze finally) |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-03-07 22:56:39 | Re: [PERFORM] Help with tuning this query (with |
Previous Message | Dave Held | 2005-03-07 22:34:32 | Re: [PERFORM] Help with tuning this query (with explain analyze finally) |