Сайт Ярослава Светлова
О сайте Программы

Секундомер для тестирования производительности программного обеспечения

Первая версия

Этот секундомер предназначен для измерения времени работы команды выполняемого приложения. Время работы вычисляется по загрузке процессора в момент выполнения команды. Останов секундомера происходит при снижении загрузки процессора.

Отсчет времени можно запустить по клику мыши в любом месте экрана, например на кнопке запуска команды.

Посмотреть Секундомер  
Скачать Секундомер 1.8 (60K)

Для чего нужен этот секундомер?

Для тех, кто не понял, зачем нужен такой секундомер, объясню причину его появления. Я работаю в софтверной компании, которая все время пытается что-то улучшить в своих и так хороших продуктах. Зачастую эти улучшения сводятся к повышению производительности работы каких-либо команд. Приходит, например, ко мне программист и говорит, что ускорил открытие файлов, и показывает мне свое творение. Смотрим, файлы открываются, как и прежде, секунды 2-3. "И где же твое ускорение?" - спрашиваю я. "А ты измерь время открытия в старой версии и сравни с новой." - отвечает он. Измеряем, действительно, в старой версии 3,7c, в новой - 2,3с. Раньше я эти измерения делал, глядя на свои наручные часы. Понятно, что потом мне это надоело, так как программисты с подобными улучшениями приходят часто, а наручные часы - не самый лучший способ засекать время. И я решил автоматизировать этот процесс.

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

Но как-то раз, когда я измерял очередное ускорение, у меня на экране оказалось открыто окно системного монитора, который отображал загрузку процессора. "Вот - это то, что нужно!" - сказал я. Любая выполняемая команда занимает ресурсы процессора. Как только команда перестает работать и приложение переходит в режим ожидания новой команды, загрузка процессора падает. Это и есть то событие, которое мне было нужно в качестве критерия конца выполнения команды.

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

Прочитать о секундомере второй версии

Сайт Ярослава Светлова. Хостинг от uCoz.