Что такое некоторые самые дорогие операции в PHP? Я знаю вещи как злоупотребление, оператор может быть дорогим. Что еще Вы рассмотрели бы?
Некоторые микро-оптимизации, которые являются хорошей практикой, но не будут иметь большого значения для вашей итоговой производительности:
echo 'How are you ',$name,' I am fine ',$var1
быстрее чем echo 'How are you '.$name.'. Я в порядке ".$var1
Вместо того, чтобы пытаться вычислить потенциальные медленные области, используйте инструмент профилирования. Установка xDebug, вероятно, была одной из самых простых и лучших вещей, которые я сделал для улучшения кода, который я пишу. Для достижения наилучших результатов установите WinCacheGrind (или правильную версию для вашей операционной системы).
. "Hello $name"
синтаксис медленнее, чем
'Hello ' . $name
также __get() __set() __call()
и т.д. медленнее
и, если вас это так волнует, вы можете использовать оптимизированные структуры из SPL
.Все, что происходит через сетевое соединение - например, вызов веб-сервиса : обычно это занимает больше времени, чем выполнение операции локально.
(Даже если это не будет стоить много CPU, это будет стоить времени)
Я бы сказал, SQL-запросы внутри циклов. Например:
foreach ($db->query('SELECT * FROM categories') as $cat)
{
foreach ($db->query('SELECT * FROM items WHERE cat_id = ' . $cat['cat_id']) as $item)
{
}
}
Который, для записи, можно было бы укоротить в нечто подобное:
$sql = 'SELECT c.*, i.*
FROM categoriess c
LEFT JOIN items i USING (cat_id)
ORDER BY c.cat_order';
foreach ($db->query($sql) as $row)
{
}
curl_exec() очень медленная, по сравнению с типичными операциями. Также большинство операций str_* быстрее, чем операции регресса.
.foreach()
утверждения, особенно с вложением, часто дорогостоящие; хотя это так же наивно - и иногда плохо спланированный - подход к программированию, как и вина php.
Хотя я думаю, что это правда и для JS и других языков, так что почти наверняка это моя вина. =/
. По моему собственному опыту, самой дорогой операцией в реальном выражении является оператор echo
. Попробуйте соединить все строки вместе перед тем, как выводить их в браузер, за этим последуют вызовы баз данных, особенно joins!
Код также иногда может получить увеличение производительности на x10, просто рефакторинг своих алгоритмов и структур данных. Получите любую программу и попробуйте наполовину ее длину, можете ли вы повторить наполовину?
.