On Sat, Dec 24, 2016 at 9:56 AM, Joel Jacobson <joel@trustly.com> wrote:
>> The difficulty with that is it'd require a gettimeofday() call for
>> every wait start. Even on platforms where those are relatively cheap,
I just realized how this can be optimized.
We only need to set wait_start for every new waiting period,
not for every wait start, i.e. not for every call to pgstat_report_wait_start():
Example:
In pgstat_report_wait_start():
if (proc->wait_start == 0) proc->wait_start = (pg_time_t) time(NULL);
And then in pgstat_report_wait_end():
proc->wait_start = 0;
This means we only need to call time() or gettimeofday() once per
waiting period.
--
Joel Jacobson