Forum Webscript.Ru

Программирование => Perl => Тема начата: metton от 10 Мая 2005, 20:54:48

Название: Как определить ресурсоёмкость скрипта?
Отправлено: metton от 10 Мая 2005, 20:54:48
Бывает, заливаешь Perl-скрипт на сервер. Скрипт работает исправно. Но через некоторое время хостер отключает его за "слишком большую ресурсоёмкость". Понятно, скрипт неоптимизирован. И, чтобы его быстрее оптимизировать, нужно узнать какие именно запросы (то есть, скрипт с какими входными параметрами) забирают больше всего ресурсов.
Вопрос, собственно, в следующем: как определить параметры, с которыми скрипт "жрёт" больше всего ресурсов? Ответ "спросить у хостера" не принимается - хостер говорит только имя скрипта.
Одна из идей, как узнать производительность, - вычислить время выполнения скрипта. Но, как я подозреваю, этого недостаточно. Или же время исполнения скрипта и будет тем достаточным критерием оценки ресурсоёмкости скрипта? Есть ли какие-то верхние границы (возможно, по неписаным правилам) времени исполнения скрипта, которые лучше не переступать?
Название: Как определить ресурсоёмкость скрипта?
Отправлено: commander от 11 Мая 2005, 10:31:37
metton
написать модуль оценки ресурсоемкости.... или банально вести свои логи что то аля:
script | datetime | время исполнения | параметры....

после чего написать анализатор логов и все сразу станет понятно... :)
Название: Как определить ресурсоёмкость скрипта?
Отправлено: cr4ck3r от 11 Мая 2005, 11:52:17
А есть ли готовые решения?
Название: Как определить ресурсоёмкость скрипта?
Отправлено: NeoNox от 11 Мая 2005, 13:34:24
perl -d:DProf yourscript.pl
Название: Как определить ресурсоёмкость скрипта?
Отправлено: commander от 11 Мая 2005, 14:08:12
NeoNox
Цитировать
perl -d:DProf yourscript.pl

по моему вопрос был оценка ресурсоемкасти скрипта в зависимости от реальных параметров...:
Цитировать
нужно узнать какие именно запросы (то есть, скрипт с какими входными параметрами) забирают больше всего ресурсов.


что на мой взгляд можно реализовать ведением логов работы реального скрипта...
Название: Как определить ресурсоёмкость скрипта?
Отправлено: metton от 11 Мая 2005, 19:25:55
commander
собственно, вторая часть моего вопроса в этом и заключалась: хватит ли информации о времени исполнения скрипта для определения его ресурсоёмкости?
Название: Как определить ресурсоёмкость скрипта?
Отправлено: Green Kakadu от 12 Мая 2005, 00:21:24
Цитировать
metton:
хватит ли информации о времени исполнения скрипта для определения его ресурсоёмкости?

еще бы хорошо знать сколько он памяти сожрет
Название: Как определить ресурсоёмкость скрипта?
Отправлено: commander от 12 Мая 2005, 10:14:33
Green Kakadu
в догонку загрузку проца... только вот очень большой вопрос нужно ли это?
metton
Цитировать
хватит ли информации о времени исполнения скрипта для определения его ресурсоёмкости?

ИХМО если задача поставленна лишь отвести взгляд администрации от скрипта то достаточно...
Название: Как определить ресурсоёмкость скрипта?
Отправлено: metton от 13 Мая 2005, 17:03:32
Посмотрел время выполнения.
Результат: выполнение скрипта 0,06-0,35 секунды. В среднем 0,08-0,10. (Не считая обработки изображений.)
Это нормально или много?

Тестировал свой движок на http://www.bluejack.ru.
Название: Как определить ресурсоёмкость скрипта?
Отправлено: commander от 13 Мая 2005, 17:47:12
Цитировать
Это нормально или много?

если речь идет о подщете маштаба вселенной от определенно нормально... а если о выводе надписи "hellow world" то определенно много... :)
что за вопрос? и самое главное какой ты ждеш ответ.. :)
Название: Как определить ресурсоёмкость скрипта?
Отправлено: metton от 13 Мая 2005, 18:05:08
ну дык я показал на чём тестировал
разброс значений времени по страницам сравнительно небольшой
большинство значений в интервале 0,07-0,10 секунды
вот собственно и вопрос: для таких страниц как http://www.bluejack.ru такие значения нормальные или можно их СУЩЕСТВЕННО уменьшить
да и вообще, имелось ввиду, нормальны ли такие значения для хостеров
им же пофиг, что ты считаешь: квадрат площади вселенной или 2+2 - у них есть конкретные ограничения, за которые нельзя заступать
сколько в среднем хостеры дают времени на выполнение скрипта?
Название: Как определить ресурсоёмкость скрипта?
Отправлено: cr4ck3r от 13 Мая 2005, 19:03:47
Ну для хостера это значение прокатит, другой вопрос - если тебя интересует оптимизация - то тут уже надо будет повозится (возможно даже написать что-то вроде того что советовал commander).
Название: Как определить ресурсоёмкость скрипта?
Отправлено: metton от 15 Мая 2005, 22:30:46
cr4ck3r
или я чего-то не понял, или commander и советовал:
"написать модуль оценки ресурсоемкости.... или банально вести свои логи что то аля:
script | datetime | время исполнения | параметры...."
Название: Как определить ресурсоёмкость скрипта?
Отправлено: metton от 15 Мая 2005, 22:37:37
А ещё один и скрипт с одним и тем же запросом может выполняться от 0.07 до 0.76 секунды. Почему так?
Название: Как определить ресурсоёмкость скрипта?
Отправлено: cr4ck3r от 16 Мая 2005, 11:02:45
Цитировать
cr4ck3r:
cr4ck3r
или я чего-то не понял, или commander и советовал:
"написать модуль оценки ресурсоемкости.... или банально вести свои логи что то аля:
script | datetime | время исполнения | параметры...."

Ну да - так и поступить если очень заморачиваетесь на скорости выполнения. (а это надо сказать правильно!)

Насчет времени выполнения - зависит от деятельности остальных процессов, если нагрузка чуть больше (общая) на сервер - то и время запуска интерпретатора может увеличиваться. В любом случае для более менее точной оценки работы скрипта надо произвести N-цать замеров и вывести среднестатистическое время выполнения.
Название: Как определить ресурсоёмкость скрипта?
Отправлено: restart2003 от 16 Мая 2005, 21:01:59
Цитировать
metton:
А ещё один и скрипт с одним и тем же запросом может выполняться от 0.07 до 0.76 секунды. Почему так?

Вроде зависит от загрузки сервака в данную секунду времени. У меня тоже бывает постоянно.
Название: Как определить ресурсоёмкость скрипта?
Отправлено: metton от 19 Января 2006, 22:54:11
А ещё такую штуку подлую обнаружил.

Протестировал один свой скрипт на сервере. В течение дня в отдельный файлик писалось время его исполнения. В этот день скрипт выдавал одно и то же. Но время почему-то варьировалось от 0,4 до 17 (!) секунд. То есть наибольшее вемя исполнения более чем в 40 больше, чем наименьшее. И это, повторюсь, при абсолютно идентичной выдаче скрипта всем запросам. Винить хостера?
Название: Как определить ресурсоёмкость скрипта?
Отправлено: Yaroslav от 08 Июня 2006, 14:15:42
metton
естественно, ты же у него не один такой :)
Название: Как определить ресурсоёмкость скрипта?
Отправлено: cr4ck3r от 08 Июня 2006, 15:15:17
стоит еще добавить, что замер продолжительности работы скрипта путем ведения лог файла
(типа open(FILE,....) print FILE time и т.п), не совсем корректен, так как открытие файлов счиатется ресурсоемкой операцией (и времяЕмкой), поэтому такой скрипт будети работать медленнее чем он же в оригинале...
Название: Как определить ресурсоёмкость скрипта?
Отправлено: NeoNox от 08 Июня 2006, 16:45:41
Цитировать
cr4ck3r:
открытие файлов счиатется ресурсоемкой операцией (и времяЕмкой)

Где это так считается, особенно про времяемкость?
Система без возможности логирования это детская пасочка.
Название: Как определить ресурсоёмкость скрипта?
Отправлено: cr4ck3r от 08 Июня 2006, 17:17:48
2NeoNox: я говорю о случае если скрипт не содержал до этого открытия данного файла, а для замера создаеться дополнительная операция по открытию файла. Если система не ведет лог, то добавить туда дополнительную информацию не затруднит, да и то вывод - всегда замедляет работу... Проверить это можно на простом примере:
считывай из файла данные (к примеру файл на несколько гигов), и выводи на консоль номер каждой строки, или выводи на консоль только строки кратные 100, и увидишь какой скрипт отработает быстрее...
З.Ы
А где считается - во всем мире :-)))...
Название: Как определить ресурсоёмкость скрипта?
Отправлено: NeoNox от 08 Июня 2006, 17:24:55
Смешались понятия. Ведение лога это запись а не вывод информации, открытие гигабайтного фала или килобайтного занимает одно и то-же время.