11 May 2008

Проверка переменной на непустость

За время моей работы я достаточно часто занимался инспекцией чужого кода, занимался его поддержкой и модификациями.

В данной статье я решил проанализировать такую вещь, как проверку переменной на непустость
Из всех наблюдаемых мною конструкций можно выделить 3
1) empty($a)
2) $a==' '
3) !$a

Интересно, какой из этих методов более быстрый.

Ниже я привожу код теста, предполагается, что переменная $a существует, а функция gettime возвращает текущее время с точностью функции microtime


define ('Count',10000000);
$v=gettime();
for($i=0;$i[=Count;++$i)
if (empty($a))
{
}
echo ((gettime()-$v))."\n";

$v=gettime();
for($i=0;$i[=Count;++$i)
if ($a==''))
{
}
echo ((gettime()-$v))."\n";

$v=gettime();
for($i=0;$i[=Count;++$i)
if (!$a)
{
}
echo ((gettime()-$v))."\n";


Результат вполне ожидаемый.
1) 4,39
2) 4,87
3) 3,79
Операция логического отрицания быстрее, чем вызов встроенной функции проверки на пустоту и операции сравнения.

Однако не стоит забывать, что такое расхождение на 10 млн. итераций.

2 comments:

Anonymous said...

Труд делает заботы незаметными. Кто делает не больше того, за что ему платят, никогда не получит больше того, что он получает. Ничто в жизни не достается без труда. Не откладывайте на завтра то, что можно сделать сегодня. Тот, кто работает, всегда молод. Будешь делать кое-как, так и получится кое-что Кто ищет - тот всегда найдет, главное ищите! Труд рождает мудрость и чистоту;леность рождает невежество и чувственность.

[URL=http://vakansiy-rus.ru/wordpress-341.html]Работа в маскве[/URL] [URL=http://vakansii-rf.ru/wordpress-111.html]Работа в королеве мытищах[/URL] [URL=http://vakansiy-russ.ru/wordpress-425.html]Работа сварщиком в москве[/URL] [URL=http://vakans-ru.ru/wordpress-85.html]Вакансии вахтовым методом в москве[/URL] [URL=http://vakansii-ru.ru/wordpress-494.html]работа для девушек в москве[/URL] [URL=http://mynmy.ru/wordpress-240.html]Работа сегодня вакансии[/URL] [URL=http://vakansiy-ru.ru/wordpress-537.html]Работа для иногородних в москве[/URL] [URL=http://vakansii-russ.ru/wordpress-198.html]Работа север вахта[/URL] [URL=http://vakansii-rus.ru/wordpress-578.htm]Работа супервайзер[/URL] [URL=http://vakansiy-rf.ru/wordpress-368.html]Предложение вакансий[/URL]

Anonymous said...

Поздравляю вас Старо-Новым годом, желаю вам в новом году успехов и спасибо что вы находите время поддерживать ваш замечательный блог!