不明觉历
1、既然有出处,好歹分享一下出处文章的链接吧(虽然搜索很好用,不过还是需要成本的)
2、如果真的想理解php的内存分配,建议还是学学C相关的东西看看源码,或者请教下有相关经验的人,了解的会更透彻一些。
不过既然写了回答,我也简单说点个人看法。当然也只是根据原文的意思揣摩,没有什么准确的依据。
依照原文标题“请手动释放你的资源”,再围绕你节选的这段文字。php在执行的时候会申请两块内存(会自动释放一大块+一小块),当然这个“自动释放”是发生在执行结束的时候。然后就有了“后续的逻辑如果请求内存”,发现之前申请的大块内存已经被用完(可能包含了很多已经无效的资源,但是没有被手动释放),就会再次向操作系统申请内存。
所以前后文所提到的重新申请内存,都是指大块内存,而不是保留下来的那块小内存,小内存是用于做引用计数或者说内存管理用的。也就是说,小块内存是给系统用的,而不是给业务逻辑代码自身用的,当进程执行结束之后会一并释放。
进而可以知道,就是因为很多无效资源没有及时的释放,从而导致了需要多次申请内存,增加了系统开销。也就印证了文章标题“请手动释放你的资源”。
还有一点想说的是,这个文章也比较老了,如果希望真正了解PHP内存管理的话,建议针对文章中提到的“垃圾回收”做一下扩展阅读。
另外个人感觉80%做php的都不知道这个内存分配究竟是啥,当然也包括我
这80%的人里面可能90%都不关心这个问题 哈哈