Python:度量函数运行时一致性的最佳方法?

Python:度量函数运行时一致性的最佳方法?,python,time,runtime,Python,Time,Runtime,我正在尝试测试我编写的函数的运行时一致性。我试着利用时间。处理时间();然而,我得到的结果参差不齐 这是我的密码: for i in range(100): start_time = time.process_time_ns() some_function() print("--- %s nanoseconds ---" % (time.process_time_ns() - start_time)) 结果如下: --- 0 nanoseconds --- --- 0

我正在尝试测试我编写的函数的运行时一致性。我试着利用时间。处理时间();然而,我得到的结果参差不齐

这是我的密码:

for i in range(100):
    start_time = time.process_time_ns()
    some_function()
    print("--- %s nanoseconds ---" % (time.process_time_ns() - start_time))
结果如下:

--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 15625000 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
--- 0 nanoseconds ---
正如你们所见,我得到的大部分是0纳秒,但随后我得到了一个随机的更大的数字,就好像它同时计算所有的东西一样

我还尝试了time.perf_counter_ns()。perf_counter_ns()的结果更有意义,但我仍然会得到随机尖峰,如您可能在下面的结果中注意到的尖峰:

--- 59100 nanoseconds ---
--- 59600 nanoseconds ---
--- 62900 nanoseconds ---
--- 59300 nanoseconds ---
--- 59500 nanoseconds ---
--- 58800 nanoseconds ---
--- 58800 nanoseconds ---
--- 59100 nanoseconds ---
--- 60100 nanoseconds ---
--- 338600 nanoseconds ---
--- 64400 nanoseconds ---
--- 67700 nanoseconds ---
--- 60100 nanoseconds ---
--- 60200 nanoseconds ---
--- 59300 nanoseconds ---
--- 59400 nanoseconds ---
--- 58600 nanoseconds ---
--- 58500 nanoseconds ---
--- 58400 nanoseconds ---
为什么我会使用时间库得到这些尖峰?有什么方法可以改进吗?或者这仅仅是由于背景流程/其他一些问题而不可避免