我用的是Jupyter笔记本.我试图测量用python计算阿伏加德罗的数字需要多长时间.我发现time.perf_counter()time.process_time()个模块对这类工作很有用.所以我试了两种,但结果完全不同.是什么造成了这种差异?这是我的密码.

import time

a = 10 ** 5

def AvogadroCounting():
    i = 0
    while i <= a:
        i += 1

AvogadroCounting()

t_fract = time.perf_counter()  #time to count fraction of avogadro's number in Seconds


print(t_fract, 'secs')

我的笔记本显示693920.3936181秒.

import time

a = 10 ** 5

def AvogadroCounting():
    i = 0
    while i <= a:
        i += 1

AvogadroCounting()

t_fract =  time.process_time()  #time to count fraction of avogadro's number in Seconds


print(t_fract, 'secs')

这就是2048.768273秒.

推荐答案

100 keeps going during sleep, 101 does not.

时间性能计数器()→ 浮动

返回性能计数器的值(以小数秒为单位),即具有最高可用分辨率的时钟,以测量较短的持续时间.它是does include time elapsed during sleep并且是全系统的.返回值的参考点未定义,因此只有连续调用结果之间的差异才有效.

时间处理时间()→ 浮动

返回当前进程的系统和用户CPU时间之和的值(以小数秒为单位).does not include time elapsed during sleep美元.从定义上讲,这是一个全过程的过程.返回值的参考点未定义,因此只有连续调用结果之间的差异才有效.

看到official documentation了吗

import time

def pc():
    start = time.perf_counter()
    time.sleep(1)
    print(time.perf_counter()-start)

def pt():
    start = time.process_time()
    time.sleep(1)
    print(time.process_time()-start)

pc()  # 0.99872320449432
pt()  # 0.0

Python-3.x相关问答推荐

IPython似乎已安装但无法运行

如何将CSV或FDF数据解析到Python词典并注入到模板PDF表单中?

从.csv导入将文件夹路径加入到文件名

将列表项的极列水平分解为新列

如何使用魔杖扭曲图像

它们是否同样存储在python3的内存中?

使用大型多个数据集,其中每个数据集包含多个值 - Pytorch

Python 3 `str.__getitem__` 的计算复杂度是多少?

为什么我不能通过索引获取字典键?

为什么 f-strings 比 str() 更快地解析值?

具有函数值的 Python 3 枚举

在初始化之前禁用`__setattr__`的干净方法

如何使用pandas python获取数据框中每列的最大长度

multiprocessing.Queue 中的 ctx 参数

全局捕获快速 api 中的异常

Python3 mysqlclient-1.3.6(又名 PyMySQL)的用法?

从大字典中弹出 N 项的最快方法

带百分号的 Python 字符串格式

在 Alembic 迁移期间更新列内容

如何从 Python 3 导入 FileNotFoundError?