Удалить расширения, которые я не использую плотно в исполнение странице 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-страницу?

Author: José, 2016-07-09

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

Лично Я оставил бы все, перечисленные выше, связаны, кроме мыла (что немного необычно использовать это)

 11
Author: Guilherme Nascimento, 2017-04-13 12:59:43