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

Measuring performance difference between Python and Java implementations?

我想比较同一算法的两种不同实现(Python 和 Java)的性能。我 运行 终端上的脚本(使用 Ubuntu 18)像这样:

time script_name

我不确定这有多准确。是否有可能提高该基准测试的准确性?也许有一种方法可以删除 Python 或 Java?

中的任何限制或设置

time 命令的准确性对于大多数测试来说可能没问题。

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

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

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>.