Как вы быстро сравните сценарии - PullRequest
3 голосов
/ 17 января 2012

Я видел много блогов, в которых авторы обсуждают быстрые тесты, такие как Ruby 1.9.0 v Python 2.5.1 , которые Антонио Канджано «собирает вместе в 3 часа ночи».

Есть ли простой способ рассчитать время сценария с точностью до миллисекунды, о котором я не знаю?Возможно, он использует встроенные функции OS X или отдельные библиотеки?Есть ли в Python стандартная библиотека для этого?

Как бы вы это сделали, если бы просто собирались пойти по пути наименьшего сопротивления и бросить его вместе в 3 часа ночи ?

Ответы [ 5 ]

5 голосов
/ 17 января 2012

Посмотрите на модуль timeit.

1 голос
/ 17 января 2012

для тестирования ruby ​​попробуйте это

require 'benchmark'

Benchmark.realtime сделайте # ваш код, этот конец

также попробуйте измерение, которое дает более подробную информацию о общем системном времени и т. Д.

Benchmark.measure do 

end
1 голос
/ 17 января 2012

Ruby имеет модуль Benchmark как часть стандартного дистрибутива. Это просто в использовании. быстрый поиск здесь, в Stack Overflow, найдет много примеров его использования, которые я сделал.

1 голос
/ 17 января 2012

Если вам не хватает простого бенчмаркинга, и вы не слишком беспокоитесь о времени запуска, и вы хотите, чтобы оно не зависело от языка программирования, и вы работаете в Unix, вы, вероятно, будете использовать unix time:

time ruby -e "1.upto(10000000) {|i| i}"
real    0m2.926s
user    0m1.570s
sys 0m1.350s
1 голос
/ 17 января 2012

Я не знаю, как это сделать в Ruby, но в Python я делаю это -

import time
def my_function():
    a = time.clock()
    //code which you want to benchmark
    b = time.clock()
    print b-a

Очевидно, что это "тест на бросок вместе в 3 часа ночи".Без излишеств.

...