dongying6179 2016-08-17 05:21
浏览 75

php窗口比linux慢4~5倍

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!

  • 写回答

1条回答 默认 最新

  • doufei5537 2016-08-17 09:59
    关注

    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

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?