![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
zyxerr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.7.2008 Репутация: 2 Всего: 2 |
Добрый день!
. 1. вопрос по терминологии. Можно ли назвать "профилированием" посчет дельты времени с помощью объекта Time::HiRes? или это хронометраж? 2. вопрос по существу. Предположим, я хочу померять скорость регулярных выражений. Операция занимает одну миллионную секунды. Какой результат будет более точным: одиночная проверка или цикл из миллиона проверок(в целом - секунда)? По идее чем больше проверок, тем меньше погрешность. Но ведь чем больше проверок, тем больше вероятность влияния системных процессов, работающих в фоне |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
1. нет
2. скорее цикл из множества проверок. хотя не понятно, честно говоря, зачем вам это нужно. ЗЫ: не забудьте вынести регулярки в qr// =) -------------------- Died at Life.pl line 21 |
|||
|
||||
zyxerr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.7.2008 Репутация: 2 Всего: 2 |
1. т.е. это хронометраж получается
2. я пишу работу по оптимизации рег.выражений. Уже получил несколько интересных результатов. немного непонятно, зачем выносить регулярки в в qr// ... |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
zyxerr,
1. да, обычно результаты статистически обрабатываются (т.е. указывается количество выполнений строки и среднее время). 2. зависит от разрядности таймера. Если размерность более чем на порядок превышает время выполнения, то более точным будет среднее значение. На моем сервере Time::HiRes имеет разрядность до 0.000001, поэтому в Вашем случае оба результата можно проигнорировать - точность их одинаково неприемлемая. KSURi, что Вы подразумеваете под "профилированием"? Это сообщение отредактировал(а) ginnie - 22.12.2008, 18:46 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Профилирование - процесс выявления узких мест в программе, путем измерения времени работы каждого ее участка (участком может быть как одна строка/инструкция, так и целая подпрограмма). Если судить по вашему, то рефакторингом можно назвать любое изменение кода.
Добавлено через 1 минуту и 48 секунд А вот википедия говорит, что в профилировку еще и проверка code coverage входит. Мне таким заниматься не приходилось. Это сообщение отредактировал(а) KSURi - 22.12.2008, 18:55 -------------------- Died at Life.pl line 21 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
KSURi, тогда другой вопрос:
Почему нельзя назвать "профилированием" посчет дельты времени с помощью объекта Time::HiRes? -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
zyxerr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.7.2008 Репутация: 2 Всего: 2 |
может быть кто-то знает, с какой точностью работает Time::HiRes ?
резульат выдало такой: 1.9073486328125e-006 насколько я понимаю, это 1.9 в степени -6 (т.е. 1.9 миллионных) |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
zyxerr, выдает с точностью системной функции gettimeofday(), а она у меня на FreeBSD с точностью до микросекунд.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
ginnie, потому что сам по себе подсчет не является профилированием. Вроде это вытекает из моего предыдущего поста)
Профилирование - совокупность действий, одним из которых является замер времени, и конечной целью которого, чаще всего, является повышение быстродействия программы. -------------------- Died at Life.pl line 21 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |