| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Время выполнения скрипта |
| Автор: halyavchik 7.6.2003, 08:13 |
| Повторюсь как определить время выполнения скрипта , ну , скажем, с точностью до деститысячных? |
| Автор: HalkaR 7.6.2003, 10:43 |
| Есть такой модуль для Perl'а Benchmarck кажется - вот с его помощью можно очень точно определить время работы скрипта. |
| Автор: Unregistered 17.6.2003, 14:44 |
| А, я так делаю $start_time = times(); # код скрипта $stop_time = times(); printf "Скрипт работал %.3f секунд \n", $stop_time - $start_time ,\n; Кстати практика показывает, что скрипт запущенный последовательно несколько раз отрабатывает за разное время (в пределах 0,1сек.), так, что точность более чем 1/10 сек. не имеет особенного смысла (имхо конечно) |
| Автор: acp 17.6.2003, 22:57 | ||
Имеет. Если тестировать скрипт, то запускать его надо в цикле. Раз так 10000. Вот тогда можно получить какие-то хорошие результаты. |
| Автор: Secandr 16.8.2004, 15:36 |
| А без модулей ни как нельзя? Что за функция times ? |
| Автор: korob2001 17.8.2004, 21:50 | ||||
Если необходимо узнать точное время выполнения скрипта, то думаю нельзя. Можно воспользоваться функцией time(), но проблема в том, что почти все программы работают меньше секунды, потому узнать точное время не получится.
Мне кажется он имел ввиду функцию time(). |
| Автор: Secandr 18.8.2004, 08:33 |
| Я нашёл в манулах функцию times, но не доконца понял что она делает, вот и спросил тут, поскольку новый топик создавать лень было. korob2001 У меня результат работы появлялся только через 30-40 сек в мозиле, я долго мучался, а потом понял, что это глюк не скрипта, а мозилы. В эксплорере всё работает быстрее, время ~5 сек. |
| Автор: korob2001 18.8.2004, 18:41 |
| Secandr Я думаю твой скрипт работает намного быстрее. Если ты ожидешь ответа сервера 5 секунд, это ещё не значит что и скрипт отработал 5 секунд. Основное время из этих 5 секунд уходит на пересылку запроса и ответа сервера, а так же на запуск внешнего интерпритатора Perl, если конечно ты не юзаешь mod_perl. |
| Автор: ElectricalStorm 18.8.2004, 18:56 |
| use Benchmark; # !!! Добавлено @ 19:06 если не получиться спрашивайте я пример тада напишу |
| Автор: Secandr 19.8.2004, 08:44 |
| Я разобрался. Скрипт работает ~0.6 сек, поскольку тащит логи телнетом с разного железа, потом парсит это всё и выдаёт в одной большой таблице (экрана на два-три). В итоге такой расклад
P.S. временем на транспортировку принебрегаем, поскольку размер 75.03 KB (76827 bytes), а сеть 100Mb Добавлено @ 08:48 но всё же мне интересно что такое times! |
| Автор: GoodBoy 19.8.2004, 10:13 | ||
times Возвращает 4-х элементный массив значений: ($user, $system, $cuser, $csystem)=times; где: $user - пользовательское время процесса в секундах. $system - системное время текущего процесса. $cuser - время процесса-потомка текущего прцесса. $csystem - его системное время. |
| Автор: Secandr 19.8.2004, 10:23 | ||
| это я прочитал в мане А что значит
|
| Автор: GoodBoy 19.8.2004, 11:21 |
| Это значит сколько секунд работал твой процесс! формат: 0.00 кажется. |
| Автор: Secandr 19.8.2004, 11:33 |
| это какраз и есть время работы скрипта |
| Автор: GoodBoy 19.8.2004, 11:46 |
| ну да! :-))) |
| Автор: Secandr 19.8.2004, 11:49 |
| Вот им то я и считал Так что можно без всяких библиотек! |
| Автор: GoodBoy 19.8.2004, 13:20 |
| Ну принцип-то Перла знаешь - "Всегда есть более, чем 1 способ сделать это!" :-))))) |