最近在看到《 一些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
分享到:
相关推荐
php opcode的反解,用于分析PHP ,逆向PHP 加密,由OPCODE转换PHP代码. WINDOWS 版本的使用: 开始,运行,CMD 进入PHP所在目录,执行: Php.exe –c php.ini 111.php 回车,即可查看:111.php 的OPCODE值. 用这个工具,可以...
前言 鸟哥在博客中说,提高PHP 7性能的几个tips,第一条就是... Optimizer+ 将PHP代码预编译生成的脚本文件 Opcode 缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗。同时,它还应用了
PHP OpCode 原理详解 OPCode 是一种 PHP 脚本编译后的中间语言,就像 Java 的 ByteCode ...OPCode 是 PHP 脚本编译后的中间语言,PHP 代码执行过程可以分为四个步骤:Scanning、Parsing、Compilation 和 Execution。
OpcodeMap
这是一个ogre+opcode物理碰撞的例子,源代码哦!是个很好的学习资源
C程序编写的pe反汇编源代码, 可以用于在软件保护当中,动态分析代码,防止hook。
汇编指令之OpCode快速入门,关于操作码得东西,比较少见。
主要介绍了PHP中opcode缓存简单用法,结合实例形式分析了opcode的概念、原理、简单开启与使用方法,需要的朋友可以参考下
基于机器学习的android恶意代码检测,n-gram opcode + RandomForest.zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用...
本文实例讲述了PHP中OpCode的原理。分享给大家供大家参考,具体如下: OpCode是一种PHP脚本编译后的中间语言,就像Java的ByteCode,或者.NET的MSL。 此文主要基于《 Understanding OPcode》和 网络,根据个人的理解和...
编写汇编编译器机器码opcode编译器机器码
本资源是Opcode命令的集合,你可以方便的查阅到各种Opcode命令,希望对你会有帮助。
Delphi源代码,也包括一个Library,供C,VB等其他语言使用 本作是一个编译器,寻找反汇编的朋友请绕道. 功能:将汇编语句(文本)转换成机器码, 将内存结构的汇编指令转换成机器码, 提供全部源代码,以及Delphi7,Delphi2010...
Opcode机器码的对应解析位图,有助于更好的去解析Opcode机器码。
x86 opcode structure and instruction overview
包含机器指令规范 操作码查询表 指令时钟周期查询表
arm和thumb指令的详细opcode,便于指令查询和熟悉指令。
Svin的OpCode教程,自己看那看。 Svin的OpCode教程