STINNER Victor <victor.stin...@gmail.com> added the comment:

(I reopen the issue since the discussion is not over.)

Marc-Andre Lemburg: "time.cock() is used in a lot of code."

I ran a quick search on GitHub. I found different use cases of time.clock():

1) Measure performance. On Windows, time.clock() has a very good precision, 
*much* better than any other clock. For example, time.process_time() has a 
resolution of 15.6 ms whereas time.clock() has a resolution of 100 ns (or 
0.0001 ms):
https://www.python.org/dev/peps/pep-0564/#windows


2) An explicit check that time.clock() doesn't include sleep. I guess that 
people are using such snippet to explain this behaviour?

https://github.com/pbarton666/PES_Python_examples_and_solutions/blob/master/py_time.py

---

#py_time.py

import time
print(time.clock(), time.time())
time.sleep(1)  #seconds
print(time.clock(), time.time())
---


Ethan: "I agree with MAL; removing functions just makes multi-version code more 
painful."

We have two choices:

* Deprecate and then remove time.clock(): break the backward compatibility -- 
currently chosen solution
* Modify time.clock() to get a portable behaviour: break the backward 
compatibility

Depending which clock we choose for time.clock(), we may break more and less 
code, I would vote for using the time.perf_counter() clock in time.clock(). It 
means no change on Windows, but modify the behaviour on Unix if the code sleeps 
(time.sleep or I/O).

It seems like time.clock() is mostly used for benchmarking, and 
time.perf_counter() is documented as the best clock for such use case. In the 
benchmarks I saw on GitHub, the benchmarked code didn't sleep, it was more 
likely pure CPU-bound.


Marc-Andre, Ethan: What do you think of removing the deprecation warning from 
the C (my last commit), leave the deprecation warning in the documentation, and 
modify time.clock() to become an alias to time.perf_counter()?

By alias, I really mean time.clock = time.perf_counter, so time.clock.__name__ 
would say "perf_counter".

----------
resolution: fixed -> 
status: closed -> open

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue31803>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to