Удалить расширения, которые я не использую плотно в исполнение странице PHP
Установил PHP с помощью Веб-Платформы, и он пришел с несколько расширений, загруженных:
Php.ini -
[ExtensionList]
extension=php_mysqli.dll
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_imap.dll
extension=php_tidy.dll
и Удалить расширения, которые я не использую плотно на исполнение PHP-страницу?
1 answers
Несмотря на то, что соглашаться с комментариями и другой ответ Brittz, еще есть да расширений, которые при отключенных улучшают да производительность сервера, сегодня является несколько необычным, но раньше серверы Shared и VPS приходили как расширения, такие как XDebug и/или Xhprof включены.
, Если у вас есть полный контроль над твоим сервера, желательно проверить все расширения, которые используются для отладки и отключить их.
Следующие тесты были сделано в:
- PHP 5.6 (x86_x64)
- Windows 8 64bit
- Apache 2.3.4
Памяти
Я Создал следующий файл foo.php
и пропускала через http (http://localhost/foo.php
):
<?php
register_shutdown_function(function () {
echo 'Pico de uso da memória: ', memory_get_peak_usage() / 1024, 'kb', PHP_EOL;
});
-
Результат xdebug выключен:
Пиковое использование памяти: 217.15625 kb
-
Результат xdebug включено:
Пиковое использование памяти: 234.6171875 kb
Принцип кажется незначительной, но это результат-файл "пустой", если вы используете framework Laravel заметите влияние
-
Laravel с xdebug (выкл):
Пиковое использование памяти: 7312.4921875 kb
-
Laravel с xdebug включен:
Пиковое использование памяти: 8377.90625 kb
Пика, могла бы быть больше, но этот пример является Laravel "чистый"
Заявок в секунду
Я Сделал тест с помощью foo.php
, используя ApacheBench
-
Xdebug выключен результат был ~3000.63 запросов в секунду, полный ответ:
Server Software: Apache/2.4.3 Server Hostname: localhost Server Port: 80 Document Path: /foo.php Document Length: 37 bytes Concurrency Level: 10 Time taken for tests: 0.333 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 202000 bytes HTML transferred: 37000 bytes Requests per second: 3000.63 [#/sec] (mean) Time per request: 3.333 [ms] (mean) Time per request: 0.333 [ms] (mean, across all concurrent requests) Transfer rate: 591.92 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.3 0 2 Processing: 1 3 5.1 3 112 Waiting: 0 3 5.0 2 110 Total: 1 3 5.1 3 112 Percentage of the requests served within a certain time (ms) 50% 3 66% 3 75% 3 80% 3 90% 4 95% 5 98% 8 99% 18 100% 112 (longest request) executed: ab -n 1000 -c 10 "http://localhost/foo.php"
-
Xdebug включен были ~1978.29 запросов в секунду:
Server Software: Apache/2.4.3 Server Hostname: localhost Server Port: 80 Document Path: /foo.php Document Length: 38 bytes Concurrency Level: 10 Time taken for tests: 0.505 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 203000 bytes HTML transferred: 38000 bytes Requests per second: 1978.29 [#/sec] (mean) Time per request: 5.055 [ms] (mean) Time per request: 0.505 [ms] (mean, across all concurrent requests) Transfer rate: 392.18 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.3 0 3 Processing: 1 5 4.5 4 64 Waiting: 1 4 4.5 4 63 Total: 1 5 4.5 4 64 Percentage of the requests served within a certain time (ms) 50% 4 66% 5 75% 5 80% 5 90% 6 95% 7 98% 13 99% 27 100% 64 (longest request) executed: ab -n 1000 -c 10 "http://localhost/foo.php"
Подводя итог, то есть практически около 1000 заявок по крайней мере, во второй
Обратите Внимание, что тесты были сделаны с XDebug в настройках minimas, если использовать profile и чего-то еще, могут потреблять больше.
Расширений, которые улучшают производительность
Да есть, ни один язык в back-end удастся достичь хорошей производительности на самом деле не будет, что она будет "собран" и/или используйте структуру "код Операции", во многих языках сервер имеет что-то вроде этого, но PHP нет (не было), по крайней мере, не по умолчанию включен.
-
PHP 5.4 и старше:
Имеем XCache, оно небольшое улучшение на сервере, до куда проверял, он может быть очень полезен для структур более тяжелые.
Это расширение не поддерживается группой разработчиков PHP, но да группа lighttPD, то есть, возможно, придется установить вручную (и компиляции).
Тем не менее в некоторых серверов есть она уже установлена, необходимо только включить, но если нет, то придется собирать непосредственно на ваш сервер и настроить, если не имеет этой опции так что только требуется для поддержки. За это он не требует настройки много, не быть
cacher
в php.ini:[xcache] xcache.cacher="On"
-
PHP 5.4:
В версии 5.4 был создан Alternative PHP Cache (APC), тем не менее, теперь можно установить только через PECL, он продемонстрировал хорошую эффективность, однако сложно установить на серверах.
-
PHP 5.5:
Из 5.5 имеем Opcache (или Zend Opcache), несмотря на то, что, быть доступны только изначально в PHP 5.5 можно установить на более старые версии через PECL (5.2, 5.3 и 5.4), из тестов, которые провел он был наиболее эффективным.
Все 3 упомянутых используют структуру, называемую Opcode, конечно, что у каждого свой путь, но их использование, тем не менее существенно повышает производительность выполнения скриптов.
Использование памяти с ZendOPcache сценария foo.php
:
Пиковое использование памяти: 206.4453125 kb
Кажется незначительной, но если сложить несколько заявок и использование framework тяжелый заметить, хорошая разница.
, Посмотрите разницу в Laravel:
Пиковое использование памяти: 2308.3203125 kb
Помните, что без ZendOPcache потребление было 7312.4921875 kb
- 2308.3203125 около 2.25 mb
- 7312.4921875 приблизительно 7.14 мб
, то есть экономия 4.89 мб, если сделать 10 запросов в то же время второй будет экономия 48.9 mb. Это помогает избежать достигнет пика в памяти сервера.
, Но имейте в виду, что это относительно, нет смысла использовать OPcache:
- , Писать сценарии плохие
- плохая структура базы
- Вставка нескольких изображений на странице .js и .css без необходимости
OPCache не сделает чудеса, вы должны заботиться об этих и другие детали, все относительно.
Ниже основные параметры OPcache (необходимо использовать zend_extension
):
[opcache]
zend_extension=php_opcache.dll
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
, Если для Unix-like (Linux, Mac, BSD):
[opcache]
zend_extension=php_opcache.so
Завершения
Списке расширение не повлияет на производительность, но может не потребоваться расширение mysqli и pdo в то же время, но выключать не будет никакой разницы, если вы должны использовать сценарий третьих лиц, не используйте mysqli, но да pdo и другой сценарий, его нужно с mysqli, то будет лучше оставить оба связаны.
Расширение imap, возможно, вы не используете, но если добавить веб-почты, таких как squiremal или roundcube будет нужно это расширение, все остальные расширения, минимальное для использования в роли основного текста, xml, etc.
extension=php_mysqli.dll
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_imap.dll
extension=php_tidy.dll
Лично Я оставил бы все, перечисленные выше, связаны, кроме мыла (что немного необычно использовать это)