Измерване на скоростта на PHP приложения с microtime()
Тези проблеми могат да навредят на психическото ви състояние, но лесно могат да бъдат разрешени с използването на няколко елементарни PHP скрипта, функции за измерването на скоростта на определен скрипт и дори цяло приложение.Всъщност, когато нещата опират до измерването на скоростта на работа, първото нещо което ми идва в главата е вградената функция „microtime()“. Тя вече е станала един от най-популярните методи за измерване на скоростта.
Разбира се, тази функция се използва заедно с други подобни, за създаването абсолютно точни програми за измерване. Сигурно сте я срещали много пъти по време на разработката на дадено приложение. Но все пак, измерването на скоростта на работа на приложения е огромна тема и не може да бъде обхваната само от една статия. След прочитането, би трябвало да сте схванали основата на измерването на скоростта на приложенията.
Това беше въведението, да започнем с теорията!
Както казах в въведението, най-елементарният начин за измерване на скоростта на приложенията е тази функция. Сигурно вече знаете, че тя връща стандартният Unix timestamp, който се измерва в милисекунди.
Базирайки се на описанието на PHP документацията, можем да кажем, че функцията връща string, в формат „msec sec“, където sec е текущото време в секунди започвайки от Unix епохата (0:00:00 Януари 1, 1970 GMT), а msec е частта с милисекундите. С две думи, формата на тази функция е:
mixed microtime ( [bool get_as_float] )
Когато използвате PHP 5, функцията приема незадължителният параметър get_as_float, който всъщност връща числото като float променлива.
Както сигурно вече разбрахте от споменатото описание, функцията е достатъчно елементарна за създаването на прост механизъм за измерване на скоростта. Погледнете следната функция.
// define 'getMicrotime()'function in PHP 4 function getMicrotime(){ list($useg,$seg)=explode(' ',microtime()); return ((float)$useg+(float)$seg); }
Функцията, която дефинирахме, показва класически начин на използване на microtime() функцията за създаване на приложение за измерване на скоростта. Нека сега да видим как може да използваме това нещо за измерване на скоростта.
$startTime=getMicrotime(); usleep(100); $endTime=getMicrotime(); $totalTime=$endTime-$startTime; echo 'Time spent in doing nothing was '.$totalTime.' seconds';
Както виждате е съвсем елементарно. Първо използваме функцията, която дефинирахме за да вземем началното време в формат на Unix timestamp, след това взимаме крайното време и след това получаваме цялото, като изкараме крайното от началното.
Функцията, която дефинирахме по-горе, беше написана за PHP 4. Разбира се може да се използва и в петата версия на езика, но сега ще ви показа как може да стане това по по-елементарен начин, използвайки единствено и само параметъра get_as_float в функцията microtime().
// define 'getMicrotime()'function - PHP 5 function getMicrotime(){ return microtime(true); }
Както видяхте, можете да измерите скоростта на дадено приложение както с четвъртата, така и с петата версия на езика. В случай, че не получените резултати не ви удовлетворяват, можете да пристъпите към оптимизацията на приложението и да тествате отново и отново.
Урокът е писан специално за Webmake!
