您现在的位置:首页 --> 查看专题: opcode
NOP 是一个特殊的opcode,表示空操作,在很多地方存在,汇编中的NOP含义也一样,
机器指令中的空操作通常用来将内存地址进行对齐,以提高CPU访问内存的效率, GCC等编译器也会将特定的语句进行优化而产生空操作。
当你发现一个平时占用cpu比较少的进程突然间占用cpu接近100%时,你如何找到导致cpu飙升的原因?我的思路是,首先找到进程正在执行的代码行,从而确定可能有问题的代码段。然后,再仔细分析有问题的代码段,从而找出原因。
最近花了大约一星期的时间写了一个PHP扩展模块Opdumer,并封装成了Web服务(点击这里访问)。这个模块的主要内容是输出PHP代码对应的opcode。其实之前已经有一些用于查看opcode的扩展模块,如比较有名的vld。之所以重新实现一个这样的模块,主要是因为vld不支持PHP_FUNCTION API,也就是说vld只能用于CLI形式,而Opdumer同时拥有CLI API和PHP_FUNCTION API,另外,也想借助编写这个模块的机会学习Zend Engine中opcode的编译和执行机制。个人打算后面专门针对opcode的编译执行机制写一篇文章,而本文主要描述Opcode的使用方法及对应Web服务的使用。
[ 共4篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[59] memory prefetch浅析
-
[55] 转载:cassandra读写性能原理分析
-
[50] 深入浅出cassandra 4 数据一致性问
-
[46] MySQL半同步存在的问题
-
[41] 获取Dom元素的X/Y坐标
-
[41] 《web前端最佳实践》—高维护性css
-
[39] javascript插入样式
-
[37] MySQL vs NoSQL 效率与成本之争
-
[37] 字符引用和空白字符
-
[36] 基本排序算法的PHP实现
赞助商广告