Я сделал некоторые профилирования на сайте и обнаружил, что вызов strtolower неожиданно наступил.Почему производительность PHP strtolower настолько различна?
Контекст
function __autoload($class_name) {
require_once('app/model/' . strtolower($class_name) . '.php');
}
И результат
_0.0092 -> ___ автозагрузку() C: \ ххх \ config.php: 0_
0,0093 -> strtolower() C: \ xxx \ config.php: 77
0,0101 -> require-once (C: \ xxx.php) C: \ xxx \ config.php: 77
Я видел это в нескольких местах в файле трассировки.
Затем я попробовал функцию в следующем контексте
for($i=0;$i<100;$i++) {
strtolower('SomeStRIng' . $i)
}
И результат был
0,0026 -> strtolower() C: \ ххх \ index.php: 53
0.0027 -> strtolower() C: \ xxx \ index.php: 53
0,0027 -> strtolower() C: \ ххх \ index.php: 53
0,0027 -> strtolower() C: \ ххх \ index.php: 53
Существует заметная разница между двумя , Конечно, это не большой, но я все еще смущен.
Префиксные строки кода с 4 пробелами. Или просто выделите блок и нажмите кнопку формата на панели инструментов (с 1 и 0). –
Я считаю, что это ошибка измерения вашего инструмента профилирования. –
Я не вижу, как такая микро-оптимизация полезна. http://www.codinghorror.com/blog/2005/01/micro-optimization-and-meatballs.html – cbednarski