php窗口比linux慢4~5倍

我有一个站点部署到Windows Server 2012和ubuntu 14.04,并且存在显着的性能差异。 代码库和数据库数据完全相同。</ p>

Windows环境</ p>


  1. AWS EC2中的Windows Server 2012 t2.medium( 双核4GB内存)</ li>
  2. PHP 5.5 64位ts </ li>
  3. Apache 2.4.23 </ li>
    </ ol>

    Linux </ p>


    1. AWS EC2中的Ubuntu 14.04 t2.medium(双核4GB内存)</ li>
    2. PHP 5.5 64位ts </ li>
    3. Apache 2.4 </ li>
      </ ol>

      两个站点都启用了OpCache。</ p>

      执行时间(唯一的PHP执行时间,不包括所有 网络流量)</ p>


      • Windows:2.6-2.8s </ li>
      • Linux:200-400ms </ li>
        </ ul> \ n

        在Windows中,我们注意到单页加载时几乎100%的CPU负载峰值和3-4MB IO读取峰值。</ p>

        我已经来了 在Stackoverflow中关于Windows中的PHP性能的各种帖子,但我们已经从那些帖子中应用/测试了建议无法</ p>

展开原文

原文

I have a site deployed to both Windows server 2012 and ubuntu 14.04 and there is a significant performance difference. The code base and DB data is exactly the same.

Windows environment

  1. Windows Server 2012 in AWS EC2 t2.medium (dual core 4GB ram)
  2. PHP 5.5 64 bit ts
  3. Apache 2.4.23

Linux

  1. Ubuntu 14.04 in AWS EC2 t2.medium (dual core 4GB ram)
  2. PHP 5.5 64 bit ts
  3. Apache 2.4

Both site have OpCache enabled.

The execution time (sole PHP execution time, excluding all network traffic)

  • Windows: 2.6-2.8s
  • Linux: 200-400ms

In windows, what we notice is there is a almost 100% CPU load peak and a 3-4MB IO read peak on single page load.

I have already came across various post in Stackoverflow regarding php performance in windows but we have already applied/tested suggestion from those post to no avil

Any advice would be appreciated!

duancan1900
duancan1900 谢谢你的建议
大约 4 年之前 回复
donglu7998
donglu7998 建议1)远离Windows“服务器”。建议2)请求服务器故障,因为这是服务器问题,而不是编码问题。
大约 4 年之前 回复

1个回答



最后得到了一个答案</ p>

性能差异是由于php函数is_dir( 在Window中执行可怕的</ p>

Test1:运行简单脚本循环1000次以调用is_dir()</ p>


  • Windows:217ms < / li>
  • Mac:8ms </ li>
    </ ul>

    Test2:使用xdebug配置代码
    和is_dir()位于列表顶部以获得最长执行时间 </ p>

    其他一些参考文献也指出了同样的问题
    https ://github.com/facebook/hhvm/issues/4431 </ p>

    希望这篇文章可以帮助其他人面对同样的问题</ p>
    </ div>

展开原文

原文

Finally got myself an answer to this

The performance difference is due to php function is_dir() perform terrible in Window

Test1: run simple script to loop 1000 times to invoke is_dir()

  • Windows: 217ms
  • Mac: 8ms

Test2: profile the code with xdebug and is_dir() sit at top of the list for highest execution time

Some other reference also point out the same issue https://github.com/facebook/hhvm/issues/4431

Hope this post can help others facing the same problem

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问