She*_*har 5 python cpu performance
我编写了一个脚本并在不同的机器上运行它.脚本如下所示
def f(n):
x = None
while n:
x = simple_math(n)
n -= 1
return x
start = now()
f(BIGNUM)
print now() - start
Run Code Online (Sandbox Code Playgroud)
在脚本结束时,它会打印完成所需的时间.这是否足以比较不同机器的简单Python脚本的实际CPU速度?
简单来说,我的意思是它不使用多处理模块或任何其他技术来利用多核机器.
这个问题不是关于
只是我想要确定我的方法是否理解机器之间的CPU性能是相当正确的.
小智 5
所有无数现有基准都有什么问题?更复杂的可能性更强一些.天真的方法的主要问题我 - 我不是这个主题的专家,请注意 - 可以发现:
但是,由于您的要求似乎只是"对CPU速度的粗略估计,完全意识到除了将CPU速度提高到数量级之外,这些数字不能用于任何事情,所以即使这样,也必须采取一些盐.不要说任何真正的应用程序的实际性能",它可能没问题 - 只是不要在任何接近准确的地方考虑它.尽管如此,为什么不使用一个强化的基准测试套件,已经付出了一些努力来减轻这些问题(而不是删除 - 没有人可以做到这一点)?
另请注意,timeitstdlib模块比手动操作秒表更容易使用,并尝试(不是太难,但它是一个开始)通过我提到的方法修复第二点.
通过使用这些类型的方法,您可以得到一个粗略的想法。但这并不是精确的测量。脚本的执行时间将取决于除 CPU 速度之外的许多其他因素,例如使用的操作系统和解释器版本、当前系统负载、内存速度等。我的建议是不要依赖于此。
编辑:只是一个注释。当谈到性能时,许多人只考虑 CPU 速度,但实际上系统上的几乎所有内容都会阻碍性能。例如,您有一个高速 CPU,但 RAM 较低(无论是大小还是速度),那么您将无法获得 CPU 的性能提升。