首页 网站建设 网络营销 品牌策划 网站托管 新闻营销 品牌公关 行业资讯

当前位置:网络营销_SEO优化_网站推广_网络营销公司-爱牛北京网络公司 >首页 -> GOOGLE优化

Google犯错:5条PHP优化建议遭痛批
2010-07-10 17:01:23 来源:爱牛网络 作者:爱牛科技 【 】 浏览:129
近日Google 在 Google Code 下的 “Let’s make the web faster” 网站中,发表了一篇名为“PHP performance tips”的文章,介绍了5条php性能优化建议

不要随意复制变量
用单引号表示字符串
使用echo输出字符串
不要在echo中使用点号连接符
使用switch/case代替if/else
  这篇文章发表后没多久就立刻遭到了一些PHP社区和个人无情的批驳,他们声称Google错了,错的很彻底,5条看似有效优化建议其实完全是迷信:

  1. 不要随意复制变量

  Zend引擎采用了“写时复制”机制,这意味着无论你对变量进行多少次复制,真正的复制动作都仅在变量值改变时才发生。

  2. 用单引号表示字符串

  无数的基准测试已经证明,使用双引号表示纯字符串并不比使用单引号时慢。有兴趣的朋友也可以重复一下这个测试:

php > $blah=”blah”; $s=microtime(true); for($i=0;$i<100000;$i++) “omgwtf$blah\n”; echo microtime(true)-$s;
0.044615983963013
php > $blah=”blah”; $s=microtime(true); for($i=0;$i<100000;$i++) ‘omgwtf’.$blah.”\n”; echo microtime(true)-$s;
0.042807102203369

  3. 使用echo输出字符串

  根据php所在服务器环境的不同,某些情况下echo会比print()慢。这里有一篇echo和print()对比的帖子,对echo和 print()的速度进行了测试:- print

  4. 不要在echo中使用点号连接符

  基准测试证明这又是一条与事实完全相反的建议。php引擎处理以点号连接(或者使用双引号)传递给echo的变量实际上是更快的。你可以重复这个测试:

$ php -d implicit_flush=off -r ‘$s=microtime(true); for($i=0;$i<100000;$i++) echo “omgwtf”,”bbq”,”\n”; echo microtime(true)-$s;’ | tail -n 1
1.071463108062710
$ php -d implicit_flush=off -r ‘$s=microtime(true); for($i=0;$i<100000;$i++) echo “omgwtf”.”bbq”.”\n”; echo microtime(true)-$s;’ | tail -n 1
0.44555306434631

  5. 使用switch/case代替if/else

  这条建议毫无意义。关于是要使用switch/case还是if/else的问题,其实完全是个代码风格问题,而它们的效率相差无几。

  一向以技术为长的Google,竟然在技术问题上犯了如此错误,相当不严谨。PHP小组已经督促文章作者重新仔细审查文章,希望能尽快改掉,以正视听。
爱牛网络公司拥有十三年网络营销推广经验的北京网络营销公司,专业的网络营销团队为您提供网络营销策划,网络推广,网络优化,网络营销外包,网站推广,网络营销推广公司。服务电话13552895708
Tags:GOOGLE优化 责任编辑:爱牛
】【打印繁体】【收藏】 【关闭】 【返回顶部
上一篇Google Chrome会是颠覆性的Web操.. 下一篇Google:希望Chrome促进互联网的发..

相关栏目

最新文章

图片信息

热门文章

推荐文章

相关文章