тестирование производительности - тест: профиль против теста: эталон, время стены против времени процесса - PullRequest
2 голосов
/ 12 января 2011

Я новичок в тестировании производительности на рельсах.Может кто-нибудь объяснить разницу между временем стены и временем процесса?Что еще более важно, в чем разница между временными результатами теста: тест и профиль: профиль.Очевидно, есть одно существенное отличие, которое я не нашел в документации.Несколько фактов:

Когда я запускаю тест рейка: тест, я получаю:

EditorTest#test_augment_large_doc (618 ms warmup)
           wall_time: 554 ms
              memory: 0.00 KB
             objects: 0
             gc_runs: 0
             gc_time: 0.00 ms

Когда я запускаю тест рейка: профиль, я получаю:

EditorTest#test_augment_large_doc (617 ms warmup)
        process_time: 1.74 sec
              memory: unsupported
             objects: unsupported

Я прочитал:

...но я до сих пор не понимаю принципиальной разницы между этими типами тестов производительности и тем, почему времена так сильно отличаются.

Еще пара вещей: когда я пишу свой журнал разработки, я получаю время, как правило, немного выше(.1 сек), чем время стены от теста: эталонный тест.И когда я смотрю на время запроса XHR в Firebug или Chrome, я получаю время, как правило, на 0,3 секунды больше.

Заранее спасибо!

[править]

хммм... Нет Ответов.Любые комментарии?Этот инструмент часто используют разработчики рельсов?Разве разница не имеет отношения к процессу оптимизации?

1 Ответ

4 голосов
/ 13 января 2011

Насколько я понимаю, время стены - это, как это звучит, количество секунд, прошедших во время теста.Время обработки немного отличается и является мерой того, сколько времени ЦП было потрачено на выполнение программы.

http://en.wikipedia.org/wiki/CPU_time

В общем, разница между сравнительным тестированием и профилированиемимеет отношение к тому же различию.Бенчмаркинг - это простой процесс многократного запуска набора кода и определения его продолжительности.

Профилирование более детально и может показать, сколько времени было потрачено на различные разделы вашего кода, включая количествовызовов всех методов в стеке.Время, затраченное на запуск полного профиля, не является показателем производительности, скорее, оно покажет вам относительную производительность различных разделов кода в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...