QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

微信扫一扫 分享朋友圈

已有 9454 人浏览分享

开启左侧

PHP在Windows系统和Linux系统下的不同表现,差异居然这么大!

[复制链接]
9454 0
  由于对Linux系统一直不懂,Windows用习惯了看到命令行就有点头大。一直听说PHP在Linux系统的表现比Windows上要强,前几天发了一下狠,搞了一台CentOS服务器用于学习练习。这几天一直在测试CentOS性能,Linux服务器是1核1G内存的,是Apache2.4+PHP7.2的组合,而Windows服务器是2核4G内存的,是IIS7.5+PHP5.4组合。用了同一套PHP代码,测试性能差异。测试代码如下:
  1.         $a = microtime(true);
  2.         $tmp = 0;
  3.         $d = 100000000;
  4.         for ($i = 0;$i<$d;$i++)
  5.         {
  6.                 $c = rand(0,100);
  7.                 $tmp = $tmp + $c;
  8.         }
  9.         $b = microtime(true);
  10.         $e = $b - $a;
  11.         echo "随机 $d 次累加,结果为 $tmp ,花费时间 $e 秒。";
复制代码
  每次随机生成0-100的数字,累加到tmp变量,通过1亿次循环,最后输出累加结果和脚本执行时间。
  1. Windows系统结果为:
  2.         100000000 次累加,
  3.         结果为 4999798765 ,
  4.         花费时间 24.78125 秒。
  5. CentOS系统结果为:
  6.         100000000 次累加,
  7.         结果为 4999820894 ,
  8.         花费时间 8.3450050354004 秒。
复制代码
  由于测试的PHP版本、服务器硬件并不一致,所以结果也不能说明什么。但是根据结果可以看到,Linux系统的确运行PHP效率比Windows系统效率要高些。
  同时,在测试中发现了一个小问题,百思不得其解。同是CentOS,同是PHP7.2,但是Apache版本不同,结果有较大差异。在Apache版本为2.4.16时,上面脚本运行时长在5秒左右,但是在2.4.37版本的Apache时,脚本运行时长在8.5秒左右,居然慢了3秒多!不知道这3秒多是怎么产生的。
  1. var
  2.   i:Integer;
  3.   a,b,c:Int64;
  4.   m,n:Int64;
  5. begin
  6.    Randomize;
  7.    a := 100000000;
  8.    b := 0;
  9.    m := GetTickCount;
  10.    for i:=1 to a do
  11.    begin
  12.      c := Random(100);
  13.      b := b + c;
  14.    end;
  15.    n := GetTickCount;
  16.    memo1.Lines.Add(Format('总共累加%d次,结果为%d,耗时%d毫秒',[a,b,n-m]));
  17. end;
复制代码
  用Delphi写了同样的程序,运行只要500多毫秒,看来编译语言效率比解释语言效率要高10倍啊

上一篇:还在骂慈利到岩泊渡的那条烂路?大家都忽视了它的6大功能~
下一篇:岩泊渡烂路什么时候修!知道的留个言吧!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

36

关注

177

粉丝

13747

主题
热门资讯
网友晒图
  • 公众号

    微信公众号

  • 微信

    站长微信

Powered by Discuz! 在此致以诚挚谢意!

CopyRight © 2011-2024 wancili.com