Збираємо дані про швидкодію скриптів
Доволі часто необхіжно оцінити швидкодію написаного Вами на php програмного коду. Хочу зробити коротенький огляд способів оцінки того, як швидко працює написаний код
Оцінюємо загальну швидкодію
В більшості випадків php використовується, як мова програмування для web. А що є прямим показником швидкодії web проекту? Ніщо інше, як кількість сторінок, які сервер може віддати користувачам за одиницю часу. Чим більше цей показник, тим менше часу витрачається на генерацію сторінок, запити до БД, виконання програмної логіки.
Наскільки мені відомо, існує багато готових рішень, які можна використовувати для підрахунку кількості сторінок, які сервер може віддати протягом деякого часу. Дуже популярним є Apache Benchmark - программа, що працює з командного рядка будь-якої unix-подыбної операційної системи (як воно в Windows чесно не знаю, оскільки не було жодної необхідності шукати щось таке). Однією з переваг є доступність - для кожної популярної системи є збірка цієї програми у складі якогось пакету. Так у всіх Debian based дистрибутивах є пакет apache-utils, що містить також і цю утиліту.
Синтаксис досить простий. Запуск виконується командою формату:
Найбільш використовуваними опціями є:
-t - час протягом якого буде відбуватись "тестування";
-n - кількість запитів;
-c - кількість конкуруючих між собою запитів (в реальних умовах буде відповідати кількості користувачів, які звертаються одночасно до сереру).
Наприклад, щоб протестувати http-сервер розміщений на локальный машині протягом десяти секунд достатньо виконати команду:
В цьому коротенькому огляді наведено далеко не всі його можливості. Якщо ця утилітка когось зацікавила, то напишу якось більш детальний її огляд.
Тестуємо окремі модулі
В деяких випадках необхідно мати інформацію щодо швидкодії окремих модулей вашого проекту. Наприклад, для пошуку того місця, де втрати ресурсів найбільші, з метою оптимізувати швидкодію. Перша методика даю змогу зрозуміти, чи швикдо працює проект, яку кількість запитів він може задовольнити та таке інше. Однак жодним чином не забезпечує Вас інформацією про його слабкі місця. Зрозуміло, що такий стан речей не може влаштовувати. До того ж, ми не можемо таким чином оцінити витрати пам'яті.
Найпростішим способом час, що витрачається на виконання певної частини коду є використання функції microtime. Техніка полягає в замірі часу перед виконанням коду і після його виконання, та визначенні різниці:
Для полегшення цієї справи можна скористатись готовим PEAR модулем Benchmark. За наведеним посиланням можна дізнатись детальніше про його функціонал.
Однак цей модуль не має однієї приємної дрібнички, а саме можливостей для визначення хоча б деякої статистики використання пам'яті. Однак і в цьому немає нічого складного:
';



