Сайт Ярослава Светлова | |
О сайте Программы |
Секундомер для тестирования производительности программного обеспечения
Первая версия
Этот секундомер предназначен для измерения времени работы команды выполняемого приложения. Время работы вычисляется по загрузке процессора в момент выполнения команды. Останов секундомера происходит при снижении загрузки процессора.
Отсчет времени можно запустить по клику мыши в любом месте экрана, например на кнопке запуска команды.
Посмотреть Секундомер | |||
Скачать Секундомер 1.8 (60K) |
Для чего нужен этот секундомер?
Для тех, кто не понял, зачем нужен такой секундомер, объясню причину его появления. Я работаю в софтверной компании, которая все время пытается что-то улучшить в своих и так хороших продуктах. Зачастую эти улучшения сводятся к повышению производительности работы каких-либо команд. Приходит, например, ко мне программист и говорит, что ускорил открытие файлов, и показывает мне свое творение. Смотрим, файлы открываются, как и прежде, секунды 2-3. "И где же твое ускорение?" - спрашиваю я. "А ты измерь время открытия в старой версии и сравни с новой." - отвечает он. Измеряем, действительно, в старой версии 3,7c, в новой - 2,3с. Раньше я эти измерения делал, глядя на свои наручные часы. Понятно, что потом мне это надоело, так как программисты с подобными улучшениями приходят часто, а наручные часы - не самый лучший способ засекать время. И я решил автоматизировать этот процесс.
Сначала я не мог придумать критерия, по которому надо было останавливать отсчет времени. Программисты ускоряли совершенно не похожие друг на друга команды, да к тому же в различных по виду и назначению приложениях. Если начало выполнения команд обычно происходило после нажатия кнопки, то конец выполнения у различных команд наступал совершенно по-разному.
Но как-то раз, когда я измерял очередное ускорение, у меня на экране оказалось открыто окно системного монитора, который отображал загрузку процессора. "Вот - это то, что нужно!" - сказал я. Любая выполняемая команда занимает ресурсы процессора. Как только команда перестает работать и приложение переходит в режим ожидания новой команды, загрузка процессора падает. Это и есть то событие, которое мне было нужно в качестве критерия конца выполнения команды.
Таким образом, выбрав в качестве начала отсчета клик мыши, а в качестве конца - снижение загрузки процессора, я приступил к написанию моего секундомера. Что из этого получилось - судите сами.
Прочитать о секундомере второй версии
Сайт Ярослава Светлова. Хостинг от uCoz.