PHP特点之垃圾回收机制3——性能方面考虑的因素
2014-11-07 00:00
621 查看
在上一节我们已经简单的提到:回收可能根有细微的性能上影响,但这是把PHP 5.2与PHP 5.3比较时才有的。尽管在PHP 5.2中,记录可能根相对于完全不记录可能根要慢些,而PHP 5.3中对 PHP run-time 的其他修改减少了这个性能损失。
这里主要有两个领域对性能有影响。第一个是内存占用空间的节省,另一个是垃圾回收机制执行内存清理时的执行时间增加(run-time delay)。我们将研究这两个领域。
内存占用空间的节省
首先,实现垃圾回收机制的整个原因是为了,一旦先决条件满足,通过清理循环引用的变量来节省内存占用。在PHP执行中,一旦根缓冲区满了或者调用 gc_collect_cycles()函数时,就会执行垃圾回收。在下图中,显示了下面脚本分别在PHP 5.2 和 PHP 5.3环境下的内存占用情况,其中排除了脚本启动时PHP本身占用的基本内存。
Example #1 内存使用示例
这里主要有两个领域对性能有影响。第一个是内存占用空间的节省,另一个是垃圾回收机制执行内存清理时的执行时间增加(run-time delay)。我们将研究这两个领域。
内存占用空间的节省
首先,实现垃圾回收机制的整个原因是为了,一旦先决条件满足,通过清理循环引用的变量来节省内存占用。在PHP执行中,一旦根缓冲区满了或者调用 gc_collect_cycles()函数时,就会执行垃圾回收。在下图中,显示了下面脚本分别在PHP 5.2 和 PHP 5.3环境下的内存占用情况,其中排除了脚本启动时PHP本身占用的基本内存。
Example #1 内存使用示例
<?php class Foo { public $var = '3.1415962654'; } $baseMemory = memory_get_usage(); for ( $i = 0; $i <= 100000; $i++ ) { $a = new Foo; $a->self = $a; if ( $i % 500 === 0 ) { echo sprintf( '%8d: ', $i ), memory_get_usage() - $baseMemory, "\n"; } } ?>
相关文章推荐
- PHP回收机制性能方面考虑的因素
- PHP垃圾回收机制之性能方面的考虑
- 垃圾回收机制--性能方面考虑的因素
- PHP特点之垃圾回收机制2——回收周期
- PHP特点之垃圾回收机制1——引用计数的基本知识
- JAVA性能优化及垃圾回收机制
- PHP新的垃圾回收机制:Zend GC详解
- PHP内核探索:新垃圾回收机制说明
- PHP垃圾回收机制简单说明
- php垃圾回收机制
- JVM 垃圾回收机制与GC性能调优
- PHP内核探索:PHP5.3的垃圾回收机制
- PHP垃圾回收机制简单说明
- PHP垃圾回收机制简单说明
- PHP垃圾回收机制
- 垃圾回收机制与 python 性能调优
- PHP新的垃圾回收机制:Zend GC详解
- 关于 PHP 垃圾回收机制的一点点资料
- PHP垃圾回收机制防止内存溢出
- PHP垃圾回收机制