PHP7自己实现内存方案的原因:
1.让开发者专注于业务逻辑,而不关心内存的申请与释放,大大提高了业务支撑的效率。
2.向操作系统申请内存以及释放内存、回收内存,会产生用户态与内核态的切换,是高耗时的操作。PHP7内存管理器充当了应用层和操作系统内核间的中间人,大大减少应用直接向内核频繁申请小块内存的操作,同事PHP7内存管理器会择时释放,提升系统的整体性能。
3.PHP内存管理还会减少内存碎片化问题。
PHP运行所需的内存空间调用内存管理器申请。
如果MM(Zend Memory Manger)中的可用内存够用,直接分配给PHP程序;如果MM中的可用内存不够用,MM再从系统申请。这样可以减少系统调用次数,并优化内存空间的使用效率。
内存池:
内存池提供了一个更有效的解决方案,即预先规定第一数量的内存区块,使得整个程序可以在运行期规划(allocate)、使用(access)、归还(free)内存区块。
从应用角度看,内存管理兼顾性能、灵活与安全性,对PHP的扩展性起到了很好地支撑作用。