前端时间在写一个PHP 的爬虫项目的时候,发现了一个莫名其妙的问题
即在本地的测试环境中运行的好好的项目到了服务器上去持久化运行的时候总是会出现莫名其妙的报错
具体的报错原因由于thinkphp 框架的问题,大约是同时访问的文件数量过多的导致的。百度了一下如何去linux 系统下的文件的同时访问数量,但是发现这个异常还是会不定时的触发。
于是怀疑是否是系统结构的问题,在windows 11 下运行后发现,确实不会报错,但是出现了一个异常现象,即php cli 的内存在不断提高和增加,达到了一个令人恐怖的数值。经过分析后发现,导致这个现象的根本原因是在使用curl 拓展的时候没有释放开启的curl 句柄导致的内存泄漏的问题。
因为php 主要还是做一个fpm 的及时应用,所以很多人在写代码的时候会忽视掉对一些对象的销毁。
同时也发现对于一个对象来说,仅仅通过unset 并不会释放其开启的句柄,还是会导致内存溢出的问题