Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Использование сложных запросов к БД быстрее, чем использование нескольких простых
Использование вычислений на стороне СУБД быстрее, чем вычисления на стороне PHP для данных хранящихся в БД.
Использование сложных запросов к БД быстрее, чем использование нескольких простых
«Преждевременная оптимизация — это корень всех бед»
К сожалению, интерпретатор PHP не может работать с ООП также быстро как с обычными функциями.
echo $var.«text» быстрее, чем echo "$var text"
readfile быстрее, чем file_get_contents, file_get_contents быстрее, чем require, а require быстрее, чем include для вывода статического контента из отдельного файла
include('абсолютный путь') быстрее, чем include('относительный путь')
>echo $var."text" быстрее, чем echo "$var text"
echo $var.'text'
<?php if($f->type == 'visible'): ?>
<tr>
<td class="label"><?php echo $f->label; ?>:</td>
<td><?php echo $f->element; ?></td>
</tr>
<?php elseif($f->type == 'hidden'): ?>
<tr style="display: none;">
<td colspan="2"><?php echo $f->element; ?></td>
</tr>
<?php endif; ?>Старайтесь не использовать require_once или include_once неоднократно по отношению к одному и тому же файлу. Иначе Вы элементарно теряете время на повторное считывание файла.
require быстрее, чем include для интерпретируемых файловага, в php4
Замечание: при ветвлении алгоритма, когда есть возможность не использовать интерпретируемый файл, надо использовать include, т.к. require подключает файл всегда.
P.S. А «текст $row[id] текст» разве работает? Наверное все-таки «текст {$row['id']} текст», не?
echo «текст ». $row['id']. " текст"
лучше чем
echo «текст $row[id] текст»
echo "текст {$row['id']} текст";echo "текст {$row['id']} текст";
// vs
echo "текст $row[id] текст";
<?
$row = array('id' => 1297);
$results = array();
$tests = 1000000;
$start = microtime(true);
for($i = $tests; $i-- > 0;)
echo $row['id'] , ' title';
$results[] = (- $start + ($start = microtime(true)));
for($i = $tests; $i-- > 0;)
echo $row['id'] . ' title';
$results[] = (- $start + ($start = microtime(true)));
for($i = $tests; $i-- > 0;)
echo "$row[id] title";
$results[] = (- $start + ($start = microtime(true)));
for($i = $tests; $i-- > 0;)
echo "{$row['id']} title";
$results[] = (- $start + ($start = microtime(true)));
var_dump($results);
?>shock@shock:~$ php -r 'error_reporting(E_ALL | E_STRICT | E_NOTICE);
$array = array("id" => 15);
echo "$array[id]\n";'
15
shock@shock:~$ php -v
PHP 5.3.1-0.dotdeb.1
0.5 быстрее, чем 1/2 Причина в том, что во втором случае выполняется операция деления.Кэп? Конечно во втором случае делится, а в первом константа.
echo $var."text" быстрее, чем echo "$var text"echo $var . 'text' быстрее, чем echo "$var text"
# echo быстрее, чем print
x = sizeOf($array); for($i = 0; $i < x; ++$i) {...} быстрее, чем for($i = 0; $i < sizeOf($array); ++$i) {...}
for ($i = 0, $l = sizeOf($array); $i < $l; $i++) {...}
$_SERVER[’REQUEST_TIME’] быстрее, чем time() для определения времени запуска скрипта
Причина в том, что в первом случае нет использования функции.
return быстрее, чем global при возвращении значения переменной из функции
Это вызвано тем, что во втором случае создаётся глобальная переменная.
require быстрее, чем include для интерпретируемых файлов
Не комментированный код быстрее, чем комментированный, так как уходит дополнительное время на чтение файла
Весьма глупо уменьшать объём комментариев ради оптимизации, надо просто в рабочих («боевых») скриптах проводить минимизацию.

$result = query('SELECT `user_id` FROM users;');
$result = query('SELECT * FROM `user_profile` WHERE `user_id` IN ( ' . $result . ' )');
CREATE TABLE `users` ( `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_first_name` varchar(100) DEFAULT NULL, `user_last_name` varchar(100) DEFAULT NULL, `user_email` varchar(100) DEFAULT NULL, `user_phone` varchar(20) DEFAULT NULL, `user_birth_date` datetime DEFAULT NULL, `user_photo` varchar(255) DEFAULT NULL, `user_age` tinyint(4) DEFAULT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM AUTO_INCREMENT=2289055 DEFAULT CHARSET=utf8 SELECT COUNT(*) FROM users - 2289054 SELECT * - 15,3 сек SELECT <перечислены все поля> - 16,1 сек
foreach ($arr as $key => $value) {...} быстрее, чем reset ($arr); while (list($key, $value) = each ($arr)) {...} для ассоциативных массивовс экономией 0.00.....1 секунды все понятно, вопрос в другом (немного не по теме):
Сборник советов и фактов по оптимизации PHP-скриптов