Сайт | Скачать | Видео | Wiki

Автор Тема: Clockit - скрипт для измерения скорости работы скриптов.  (Прочитано 2161 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Фарватер

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 552
  • Репутация: +41/-0
Когда бывает надо померить, с какой скоростью исполняется скрипт, не всегда легко это измерить командой time. Например, когда один скрипт вызывает другой, тот вызывает третий и т.д., причем результат их работы невозможно воспроизвести, если запускать их по одиночке.

Скрипт CLOCKIT решает задачу мониторинга скриптов радикально.
Вызов
clockit myscript1.sh myscript2.sh myscript3.shдобавляет в каждый из файлов код, который вычисляет время ( в наносекундах) исполнения данного файла (до конца или/и до выхода exit или exec). Длительность исполнения файла дописывается в таблицу в файл /tmp/.clockit.txt.

Пример использования:
find /etc/init.d -print0 | xargs -0 clockit -f #Устраиваем мониторинг времени исполнения каждого файла в /etc/rc.d
reboot #Перезагружаемся
more /tmp/clockit.txt #Просматриваем таблицу времени исполнения файлов
find /etc/init.d -print0 | xargs -0 clockit -c #Очищаем файлы от кода, вставленного CLOCKIT.

Результат работы примера:
/tmp/clockit.txt*:
/etc/init.d/10rc.acpi 416675093 exit 0
/etc/init.d/10rc.acpi 438857941
/etc/init.d/20rc.pcmcia 54706872
/etc/init.d/30-dbus 156111329
/etc/init.d/30-dbus~ 32113495
/etc/init.d/30dbus_hal 32154002
/etc/init.d/30dbus_hal~ 1150377916
/etc/init.d/35dbus_hal 37910881
-------------------------------------------
/etc/init.d/Allusbserial 4417517 -h /dev/modem ]
/etc/init.d/_slmodemusb 2407878 -h /dev/modem ]
/etc/init.d/_slmodemusb 7905783 ! start ]
/etc/init.d/slmodem 7992038 -h /dev/modem ]
/etc/init.d/slmodem 34011664 ! start ]
/etc/init.d/~slmodemsnd 10211971 -h /dev/modem ]
/etc/init.d/~slmodemsnd 26991409 ! start ]
-----------------------------------------------------------
/etc/init.d/40-bluetooth 10824486 /usr/libexec/obexd --ftp --opp -r /root/bluetooth-share -n
-----------------------------------------------------------
/etc/init.d/40-bluetooth 18189551
/etc/init.d/50-Frisbee 176110700
/etc/init.d/60-dhcpcd 288750116089
/etc/init.d/agrsm -288810627540
/etc/init.d/alsa 254093799
/etc/init.d/cups 24669647 exec_prefix=/usr
/etc/init.d/cups 129624388
/etc/init.d/loadsfs 1531326582




« Последнее редактирование: 30 Январь 2011, 18:08:55 от Фарватер »