这是怎么回事?为什么PHP的性能这么差劲? 我刚才换了个好点的空间又做了测试,test.php终于执行完了,看到了时间,是25秒。而test.asp不知道是不是因为代码有问题,执行测试时间是0秒。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你不会换个正常点的php空间或是不要拿本机测试asp来比吗。无聊。 建议你先到apache区去从配置服务器学起。以上php代码我在服务器上执行时间为0.18018698692322秒。你这么赤裸裸的诬陷让我不知道该说什么好了。 IIS测试结果:http://ycjiajiale.cn/host_test/test.php (11~25秒)linux测试结果:http://mpe.net.cn/test.php(40~60秒)你把你的测试地址给我测试 http://59.40.131.184/test.php随便你刷吧。看看会不会有可能出现超过1秒的。 这只能说明你的服务器快,或者说在NT环境下PHP不适合,看来我这次得花点功夫去挑服务器了 你再比比这两个看能否说明问题:http://teyun.cn/host_test/test.asphttp://teyun.cn/host_test/test.php 单一个这样的程序是不能说明问题的,要你考虑下环境的问题,效率高只是相对而以如在WIN+PHP+IIS环境中测试,绝对是ASP占优势,但同一台机器,你要是分别在不同的操作系统下如:2003跟FREEBSD测就大不一样了。(配置到最优化)另对于网站系统的效率方面,还要考虑到数据库的效率,PHP方面还有非常多的内置函数同模板引擎这些,........... 服务器问题吧,你的那个php的过不了1秒的 http://food.poco.cn/a.php自己看吧! 经过几位兄弟的解释我已经大致明白,是因为在IIS下ASP的性能比PHP强,所以大家以后购买空间的时候一定不要买那种“全能空间”(支持ASP/ASP.NET/PHP),因为这种全能空间多数是采用IIS搭配起来的,在这种空间下PHP的运行效率比不上ASP的一半,各位在买空间的时候也可以用以上的代码做测试,如果执行在5S内的基本属于好空间。附:IIS下ASP与PHP性能测试结果:http://teyun.cn/host_test/test.asphttp://teyun.cn/host_test/test.php结帖!勿再回复! It used:0 seconds ,估计是0.0几秒就完了我的是 CIII 1.0G 的机子你的PHP配置存在严重的问题 光看主题就已经猜到会有什么回复了。hiahia~ 在我的机器:PM1.7G 512Mwin2003+apache+php速度=1 secondswin2003+iis+asp第一次=1.15740740741499E-05第二次=0大家测试是什么结果啊?都帖出来看看? 我来做最终的解释,这是因为:1)ASP和PHP的两种默认print方式不一样,PHP默认是没有缓存输出,ASP是缓存输出。也就是说PHP的配置文件里output_buffering = Off,ASP默认是Response.buffer = true。所以两种不同方式的比较没有意义。如果ASP加上Response.buffer = false或者PHP加上ob_start(),两者的执行时间是差不多的。2)另外ASP的输出不管缓存与否都会立即执行下一句,而PHP会等print传送到客户端之后再执行下一句,所以PHP显示的是整个显示时间,就是网络的阻塞与非阻塞的问题,所以看print的执行效率也是没有意义的。 无视你的最终解释。他上面同一台服务器明显php用了25多秒还没显示完。asp不到一秒(不是显示的时间,而是实现现实中的时间)。同一台服务器的网速不会根据php和asp做区分吧。明显是他服务器的配置问题。 it is caused mostly by the difference between IIS and Apache To Gdj: 不管你接不接受我的解释,这是事实,如果PHP程序改成:<?phpob_start();$t=time(); for( $i=0;$i<100000;$i++) { if(($i%20)!=0) {echo $i; echo ",";} else { echo "<br/>";} } $t1=time(); echo "<br/>"; echo "It used:"; echo $t1-$t; echo " seconds"; ?> 显示速度就是1s之内,如果没有ob_start()显示速度就很慢。如果ASP改成这样:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><% Response.buffer = falsetim=time()for i=1 to 100000if (i mod 20) <> 0 then response.Write(i&",")else response.Write("<br/>")end ifnexttim2=time()tim3=tim2-timresponse.Write(tim3) %>ASP的程序显示速度也跟PHP一样慢!不行,有兴趣的朋友可以自己去测试。 最后我还要指出一点,这跟apache iis无关,因为time()计算的时间是语句之间的执行时间,所有的服务器iis, apache初始化时间都不计算在内的,虽然他们初始化时间,模块调用,连接会不一样,但是这都不会计算在两个time()之间的时间的。 是不是使用了ob_start();就可以提高PHP的执行效率?那PHP为什么默认不打开此项呢? 我又在本机上测试了一次:不加<?php ob_start();?>时测试时间是5~8秒;加了<?php ob_start();?>后测试时间是16~18秒。另外就是我做的这个小项目运行速度实在是慢,我去掉了所有的数据库连接才能达到普通水平,怎么办啊,马上就要运行了啊!!!各路大侠救救我吧,连普通的SELECT 都要执行半天。是不是我要装LINUX才行?PS:服务器不是我配置的,我使用的是集成的APMServ,网上普遍反映这个服务器不错,我想应该不存在服务器配置问题啊,我把IIS什么的全部都卸载了还是不行。这是我学PHP来第一次开发的小项目,没想到会是这种结果,另外就是我在思维上是按照ASP的模式写的代码(即嵌入式),没有使用模板(不懂模板概念所以没有用),会不会在这个上面有问题??? 还是用事实说话吧1. http://community.dictworld.com/test.php (ob_start())2. http://community.dictworld.com/test1.php (没有ob_start())上海电信测试结果: 1. 0-1s 2. 4-5s其实我都说得很清楚了,PHP统计出来的是把所有内容输出到客户端所用的时间,所以这个是跟你的网络有关的,ASP统计的语句执行的时间,而所有内容发送到客户端是ASP脚本到了最后才全部输出的。 It used:0 seconds真的昏~~~~~~~~~~~我在本地测试 根本不可能大于1s......................机子很烂~~~2.2G athlonxp2.0.58 php 514~~~ 2.2.2 编译不过去~~~没办法~` 应该说只要配置正确 即使在win下apache + php 514 也不会超过1s,除非你后面还开着个CS CPU优先级高于标准.....................另外对iis没有好感..................没有用过~~~~ 好像还没结帖嘛ASP是个技术失败但市场成功的东西,很难用(虽然有时也会用)如果愿意,我希望用JSP来和PHP比,这才是一个档次的 It used:0 seconds在我自己电脑(wxp+apache+php)上测试的!!肯定是你自己配子问题 It used:0 secondsME TOOAthlon 3000+windows+iis+php4 to Meteorlet(www.dictworld.com):php不开ob是输出一行执行一行?我觉得是全部执行完才进行输出吧。要不就是全部解析完在执行的时候是输出一行执行一行:)我可能记错了。呵呵。 这样也叫性能测试吗?没有服务器软硬件配置,没有带宽情况,没有用户数量.开源进销存管理软件(php + mysql) www.minierp.cn win2003+apache2.0.55+php5.1.2(apache没优化,只是加载php模块)第一次执行:1s刷新:0s 测试处理每个请求需要的时间更有意义一些,更高级的测试并发数,cpu内存占用,负载......单测循环没意义,而且还有数据库,文件操作等... 嘿嘿, 我的系统是PIII, 450M, 用不了1秒, 把循环变量再加多一个零, 是21秒:)这个贴好玩, 长知识~~~ 不开ob的话的确是测试的程序连显示的没错。不过他的服务器明显不是这个问题。他实际上执行的时间就是超慢。肯定是他服务器有问题。即使加了ob也没用的。他那两个程序执行时间相差好几十倍。根本不用看数字也感觉得出来。 无语,也没做过这么无聊的测试很久以前在windows+iis下玩过php, 那时是菜菜菜鸟后来在windows+apache下玩php, 那时是菜菜鸟现在在linux+apache下玩php,升级成菜鸟了不知道什么时候能变成老鸟还有一点声明一下Meteorlet(www.dictworld.com) ( 一星(中级)) 这位老兄解释的没有错,但是论点错了,人家谈的是运行效率,而不是说显示出来的具体时间,显示出来的数字没有很大的意义,真正的效率才是大家关心的楼主的问题是很无知的,就好像拿着一个正方形来问大家这个图形圆不圆,我只能告诉你当你知道什么是圆的时候就会发现今天的你是多么的无知,再一次无语。。 如何循环一个table并获取每行td中的值 Dreamweaver历史记录面板出现红X 关于二级域名解析的问题, 关于file_get_contents函数 新手学PHP:教程上的例子,没结果.. 表达式取值问题 fsockopen实现get请求? 替换问题:[URL][/URL]如何变成<a></a> 图片转换字符,大家来玩玩吧。 哪有PHPLIB的模板类下载? 关于Notice: Undefined index求教,急啊? 建立array時為什麼不能用變量代替內容?
linux测试结果:http://mpe.net.cn/test.php(40~60秒)你把你的测试地址给我测试
http://teyun.cn/host_test/test.asp
http://teyun.cn/host_test/test.php
自己看吧!
IIS下ASP与PHP性能测试结果:
http://teyun.cn/host_test/test.asp
http://teyun.cn/host_test/test.php结帖!勿再回复!
It used:0 seconds ,估计是0.0几秒就完了我的是 CIII 1.0G 的机子你的PHP配置存在严重的问题
速度=1 secondswin2003+iis+asp
第一次=1.15740740741499E-05
第二次=0大家测试是什么结果啊?都帖出来看看?
1)ASP和PHP的两种默认print方式不一样,PHP默认是没有缓存输出,ASP是缓存输出。也就是
说PHP的配置文件里output_buffering = Off,ASP默认是Response.buffer = true。所以两种不同方式的比较没有意义。如果ASP加上Response.buffer = false或者PHP加上ob_start(),两者的执行时间是差不多的。
2)另外ASP的输出不管缓存与否都会立即执行下一句,而PHP会等print传送到客户端之后再执行下一句,所以PHP显示的是整个显示时间,就是网络的阻塞与非阻塞的问题,所以看print的执行效率也是没有意义的。
如果PHP程序改成:
<?php
ob_start();
$t=time();
for( $i=0;$i<100000;$i++) {
if(($i%20)!=0) {echo $i; echo ",";}
else { echo "<br/>";}
}
$t1=time();
echo "<br/>"; echo "It used:"; echo $t1-$t; echo " seconds";
?>
显示速度就是1s之内,如果没有ob_start()显示速度就很慢。如果ASP改成这样:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.buffer = false
tim=time()
for i=1 to 100000
if (i mod 20) <> 0 then
response.Write(i&",")
else
response.Write("<br/>")
end if
next
tim2=time()
tim3=tim2-tim
response.Write(tim3)
%>ASP的程序显示速度也跟PHP一样慢!不行,有兴趣的朋友可以自己去测试。
不加<?php ob_start();?>时测试时间是5~8秒;
加了<?php ob_start();?>后测试时间是16~18秒。另外就是我做的这个小项目运行速度实在是慢,我去掉了所有的数据库连接才能达到普通水平,怎么办啊,马上就要运行了啊!!!各路大侠救救我吧,连普通的SELECT 都要执行半天。是不是我要装LINUX才行?PS:服务器不是我配置的,我使用的是集成的APMServ,网上普遍反映这个服务器不错,我想应该不存在服务器配置问题啊,我把IIS什么的全部都卸载了还是不行。这是我学PHP来第一次开发的小项目,没想到会是这种结果,另外就是我在思维上是按照ASP的模式写的代码(即嵌入式),没有使用模板(不懂模板概念所以没有用),会不会在这个上面有问题???
1. http://community.dictworld.com/test.php (ob_start())
2. http://community.dictworld.com/test1.php (没有ob_start())上海电信测试结果: 1. 0-1s 2. 4-5s其实我都说得很清楚了,PHP统计出来的是把所有内容输出到客户端所用的时间,所以这个是跟你的网络有关的,ASP统计的语句执行的时间,而所有内容发送到客户端是ASP脚本到了最后才全部输出的。
ASP是个技术失败但市场成功的东西,很难用(虽然有时也会用)
如果愿意,我希望用JSP来和PHP比,这才是一个档次的
在我自己电脑(wxp+apache+php)上测试的!!
肯定是你自己配子问题
ME TOO
Athlon 3000+
windows+iis+php4
没有服务器软硬件配置,没有带宽情况,没有用户数量.
开源进销存管理软件(php + mysql) www.minierp.cn
第一次执行:1s
刷新:0s
单测循环没意义,而且还有数据库,文件操作等...
Meteorlet(www.dictworld.com) ( 一星(中级))
这位老兄解释的没有错,但是论点错了,人家谈的是运行效率,而不是说显示出来的具体时间,显示出来的数字没有很大的意义,真正的效率才是大家关心的
楼主的问题是很无知的,就好像拿着一个正方形来问大家这个图形圆不圆,我只能告诉你当你知道什么是圆的时候就会发现今天的你是多么的无知,再一次无语。。