diff options
author | Victor Stinner <vstinner@python.org> | 2021-10-01 11:29:00 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-01 11:29:00 (GMT) |
commit | 54957f16a63ecb6b15f77b01fa7c55ada892604a (patch) | |
tree | 880e2951cfc3bdabb4566171553751a467df8c4e /Modules/gcmodule.c | |
parent | 98d282700221234157159df4af76423d89490ad9 (diff) | |
download | cpython-54957f16a63ecb6b15f77b01fa7c55ada892604a.zip cpython-54957f16a63ecb6b15f77b01fa7c55ada892604a.tar.gz cpython-54957f16a63ecb6b15f77b01fa7c55ada892604a.tar.bz2 |
bpo-41710: gc_collect_main() uses _PyTime_GetPerfCounter() (GH-28676)
If the DEBUG_STATS debug flag is set, gc_collect_main() now uses
_PyTime_GetPerfCounter() instead of _PyTime_GetMonotonicClock() to
measure the elapsed time.
On Windows, _PyTime_GetMonotonicClock() only has a resolution of 15.6
ms, whereas _PyTime_GetPerfCounter() is closer to a resolution of 100
ns.
Diffstat (limited to 'Modules/gcmodule.c')
-rw-r--r-- | Modules/gcmodule.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index 2592c39..7d1a45b 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -1211,7 +1211,7 @@ gc_collect_main(PyThreadState *tstate, int generation, if (gcstate->debug & DEBUG_STATS) { PySys_WriteStderr("gc: collecting generation %d...\n", generation); show_stats_each_generations(gcstate); - t1 = _PyTime_GetMonotonicClock(); + t1 = _PyTime_GetPerfCounter(); } if (PyDTrace_GC_START_ENABLED()) @@ -1307,7 +1307,7 @@ gc_collect_main(PyThreadState *tstate, int generation, debug_cycle("uncollectable", FROM_GC(gc)); } if (gcstate->debug & DEBUG_STATS) { - double d = _PyTime_AsSecondsDouble(_PyTime_GetMonotonicClock() - t1); + double d = _PyTime_AsSecondsDouble(_PyTime_GetPerfCounter() - t1); PySys_WriteStderr( "gc: done, %zd unreachable, %zd uncollectable, %.4fs elapsed\n", n+m, n, d); |