Измерять разницу в производительности между реализациями Python и Java? - PullRequest
0 голосов
/ 18 октября 2018

Я хочу сравнить производительность двух разных реализаций (Python и Java) одного и того же алгоритма.Я запускаю сценарии на терминале (используя Ubuntu 18), например:

time script_name

Я не уверен, насколько это точно.Можно ли повысить точность этого теста?Возможно, есть способ снять ограничения или настройки в Python или Java?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Как объяснено в в этом ответе , правильный способ оценки производительности программы с помощью time - следующая команда: sudo chrt -f 99 /usr/bin/time --verbose <benchmark>.Однако учтите, что это будет точным только в том случае, если выполнение алгоритма займет не менее секунды, так как в противном случае вызов exec может занять большую часть теста.

Этот ответ предлагает вместо этого использовать perf stat, например: perf stat -r 10 -d <your app and arguments>.

0 голосов
/ 18 октября 2018

Точность команды time, вероятно, подходит для большинства тестов.

Но если вы хотите, вы можете написать 2-й скрипт Python для синхронизации с import subprocess, который затем использует subprocess.call()функция (или одна из нескольких связанных функций в модуле subprocess) для запуска двух версий алгоритма.

Ваш сценарий синхронизации также может import time, а затем выполнить datetime.datetime.now().time() до и после запуска алгоритма., чтобы показать, сколько времени прошло.

...