Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> измерение скорости кода, профилирование 
:(
    Опции темы
zyxerr
Дата 22.12.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 17.7.2008

Репутация: 2
Всего: 2



Добрый день!
.
1. вопрос по терминологии. Можно ли назвать "профилированием" посчет дельты времени с помощью объекта Time::HiRes? или это хронометраж?
2. вопрос по существу. Предположим, я хочу померять скорость регулярных выражений. Операция занимает одну миллионную секунды. Какой результат будет более точным: одиночная проверка или цикл из миллиона проверок(в целом - секунда)? По идее чем больше проверок, тем меньше погрешность. Но ведь чем больше проверок, тем больше вероятность влияния системных процессов, работающих в фоне

PM MAIL   Вверх
KSURi
Дата 22.12.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



1. нет
2. скорее цикл из множества проверок. хотя не понятно, честно говоря, зачем вам это нужно.

ЗЫ: не забудьте вынести регулярки в qr// =)


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
zyxerr
Дата 22.12.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 17.7.2008

Репутация: 2
Всего: 2



1. т.е. это хронометраж получается
2. я пишу работу по оптимизации рег.выражений. Уже получил несколько интересных результатов.
немного непонятно, зачем выносить регулярки в в qr// ...

PM MAIL   Вверх
ginnie
Дата 22.12.2008, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



zyxerr,

1. да, обычно результаты статистически обрабатываются (т.е. указывается количество выполнений строки и среднее время).
2. зависит от разрядности таймера. Если размерность более чем на порядок превышает время выполнения, то более точным будет среднее значение. На моем сервере Time::HiRes имеет разрядность до 0.000001, поэтому в Вашем случае оба результата можно проигнорировать - точность их одинаково неприемлемая.


KSURi, что Вы подразумеваете под "профилированием"?

Это сообщение отредактировал(а) ginnie - 22.12.2008, 18:46


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
KSURi
Дата 22.12.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



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

Добавлено через 1 минуту и 48 секунд
А вот википедия говорит, что в профилировку еще и проверка code coverage входит. Мне таким заниматься не приходилось.

Это сообщение отредактировал(а) KSURi - 22.12.2008, 18:55


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
ginnie
Дата 22.12.2008, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



KSURi, тогда другой вопрос:

Почему нельзя назвать "профилированием" посчет дельты времени с помощью объекта Time::HiRes?


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
zyxerr
Дата 22.12.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 17.7.2008

Репутация: 2
Всего: 2



может быть кто-то знает, с какой точностью работает Time::HiRes ?
резульат выдало такой: 1.9073486328125e-006
насколько я понимаю, это 1.9 в степени -6 (т.е. 1.9 миллионных)
PM MAIL   Вверх
ginnie
Дата 22.12.2008, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



zyxerr, выдает с точностью системной функции gettimeofday(), а она у меня на FreeBSD с точностью до микросекунд.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
KSURi
Дата 22.12.2008, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



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


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.