Назад | Перейти на главную страницу

Окно php в Windows в 4 ~ 5 раз медленнее, чем в Linux

У меня есть сайт, развернутый как на Windows Server 2012, так и на ubuntu 14.04, и есть значительная разница в производительности. База кода и данные БД абсолютно одинаковы.

Среда Windows

  1. Windows Server 2012 в AWS EC2 t2.medium (двухъядерный 4 ГБ оперативной памяти)
  2. PHP 5.5 64-битный TS
  3. Apache 2.4.23

Linux

  1. Ubuntu 14.04 в AWS EC2 t2.medium (двухъядерный 4 ГБ оперативной памяти)
  2. PHP 5.5 64-битный TS
  3. Apache 2.4

На обоих сайтах включен OpCache.

Время выполнения (единственное время выполнения PHP, исключая весь сетевой трафик)

Что мы замечаем в Windows, так это почти 100% пик загрузки ЦП и пик чтения ввода-вывода 3-4 МБ при загрузке одной страницы.

Я уже сталкивался с различными сообщениями в Stackoverflow о производительности php в Windows, но мы уже применили / протестировали предложения из этого сообщения, чтобы не было avil

Любой совет будет принят во внимание!

Наконец получил ответ на это

Разница в производительности связана с тем, что функция php is_dir () ужасно работает в Window

Test1: запустите простой скрипт, чтобы выполнить цикл 1000 раз, чтобы вызвать is_dir ()

  • Windows: 217 мс
  • Mac: 8 мс

Test2: профилируйте код с помощью xdebug, а is_dir () занимает первое место в списке для максимального времени выполнения

Некоторые другие ссылки также указывают на ту же проблему https://github.com/facebook/hhvm/issues/4431

Надеюсь, этот пост поможет другим столкнуться с той же проблемой.