衡量Python和Java实现之间的性能差异?

时间:2018-10-17 21:13:32

标签: java python time terminal benchmarking

我想比较同一算法的两种不同实现(Python和Java)的性能。我在终端上使用Ubuntu 18运行脚本,如下所示:

time script_name

我不确定这有多准确。是否可以提高该基准的准确性?也许有一种方法可以消除Python或Java中的任何限制或设置?

2 个答案:

答案 0 :(得分:1)

对于大多数测试,time命令的准确性可能很好。

但是,如果您愿意,您可以编写第二个Python脚本来使用import subprocess进行计时,然后使用subprocess.call()函数(或subprocess模块中的几个相关函数之一)运行两种版本的算法。

您的计时脚本还可以import time,然后在算法运行之前和之后执行datetime.datetime.now().time(),以显示经过了多少时间。

答案 1 :(得分:1)

this answer中所述,使用time对程序进行基准测试的正确方法是以下命令: sudo chrt -f 99 /usr/bin/time --verbose <benchmark>。但是,请注意,只有在算法花费至少一秒钟的时间才能执行,否则这是正确的,否则exec调用可能会占用基准的很大一部分。

This answer建议改用perf stat,例如: perf stat -r 10 -d <your app and arguments>