`
xiaoshenge
  • 浏览: 167447 次
  • 性别: Icon_minigender_1
  • 来自: 十堰
社区版块
存档分类
最新评论

opcode看PHP代码性能问题之疑惑

 
阅读更多

最近在看到 一些PHP Coding Tips》中提到一点:避免在for判断条件中做运算。

 

于是兴起用vld看了一下:


for ($i=0; $i<strlen($str);$i++)

for($i=0, $j=strlen($str); $i<$j; $i++)

opcode:

$name = "xiaoshenge";
for ($i = 0; $i < strlen($name); $i++) {
    echo "1";
}

 

$name = "xiaoshenge";
for ($i = 0, $j = strlen($name); $i < $j; $i++) {
    echo "1";
}
 


由此来看的opcode区别还真看不出来,所以我有点怀疑之前看到的文章用opcode来看PHP代码的性能问题,于是发邮件请假了几个前辈,但是只有一个看到并且回复我了。

 

 

其中reeze.xia@gmail.com(http://www.phppan.com/)是怎么回复的:

 

这两者的opcode相近也是可以理解的,opcode相当于只是把需要进行的操作翻译了一下,

不过我们直观的从代码也能看出两者的却别,后者需要进行的计算会小点,不过这只是从直观看的,
最终我们还是需要自己做个性能测试验证一下,因为性能涉及到的内容太广了,
Zend引擎本身可能会对操作进行优化,CPU自己也会有自己的优化,这些都可能都会影响到我们的性能:)

所以,php的opcode还不是类似C的编译后的可执行文件,单纯用opcode分享代码执行效率还是有点问题的...

 

 

  • 大小: 22 KB
  • 大小: 22.4 KB
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics