Профессиональное программирование на PHP

Страница 455 из 591


472 Глава 19 Сравнительное тестирование производительности...

function concatenated($name, $iter) { for($i=0;$iter; $i++) {

$string = "Здравствуйте, ".$name.", и до свидания!\n";

}

}

$iterations = 100000;

foreach(array('interpolated1, 'concatenated') as $func) { $bm = new RusageBench;

$bm-run(l, $func, 'george', $iterations) ,• $result = $bm->get();

printf("$func\tnoflb30BaTeflbCKoe время + Системное время: %0.6f\n", ($result[mean][ru_utime] + $result[mean][ru_stime])/$iterations); }

В PHP 4.2.3 выполнение данного кода приводит к появлению следующих результатов:

РНР 4.2.3

interpolated Пользовательское время + Системное время: 0.000016 concatenated Пользовательское время + Системное время: 0.000006

Ниже приведены результаты выполнения данного кода в РНР 4.3: РНР 4.3

interpolated Пользовательское время + Системное время concatenated Пользовательское время + Системное время

Несмотря на то что производительность интерполяции значительно улучшилась, динамические строки все равно быстрее создаются методом конкатенации. В главе 20, "Устройство РНР и Zend Engine", в которой рассматривается внутреннее устройство Zend Engine (машины выполнения сценариев, лежащей в основе РНР), также исследуются различия внутренней реализации внутренних функций и функций, определенных пользователем.

Предупреждение о направленной регулировке

Закон Амдаля — предупреждение для тех, кто намеревается регулировать производительность приложений. Джин Амдаль (Gene Amdahl) был компьютерным ученым в IBM и одним из главных архитекторов модельного ряда мейнфреймов S/360. Вероятно, он более известен благодаря сформулированному им закону об ограничении потенциального ускорения программы, выполняемой параллельно. Закон Амдаля гласит, что, если две части программы выполняются с различными скоростями, более медленная часть будет доминировать в общем времени выполнения. В данном случае закон можно переформулировать так: наибольшего эффекта можно достичь путем оптимизации наиболее медленных блоков кода. Или: наименее выигрышной будет оптимизация кода, который и так занимает небольшую часть общего времени выполнения.

: 0.000007 : 0.000004




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006