雷子说测试,带来最好最完美的干货!
在工作中,有一天django服务开始报错MemoryError的错误,没有遇到过这样的错误,上来之后还是很蒙蔽的,问了几个业内的人,他们 都给我说让我改服务器里面配置的东西, 因为是要给大家用的,服务器要保证长久运行,不能临时去修改这个,导致在大家无法使用平台呢,我想着是一个服务启动的时候 引发的,短暂的停服后,并没有解决掉这个问题。还是依旧存在,如果用命令去释放,只会短暂的解决。自己刚开始 也没有想到gc模块,在百度搜索, 找半天 终于找到了,知乎的链接,大概的方式就是用gc 直接去处理。
这里我也采用的ge模块去解决的,用gc.collect() 去解决这个问题。
这个原因还是因为对python的底层代码不太熟悉,对python的学习不够深入。
在for循环,由于当时的逻辑过于复杂,会占用大量内存,再加上接口测试平台有一个功能,录制测试用例,这一个功能采用的是mimtproxy来录制测试用例 , 结果这个工具把数据写入了内存,由于在统一的机器上,就导致了内存超出。
之前看过一篇文章32bit的python使用内存超过2g之后,就报这个错误,有人说python不是有垃圾回收机制吗,有时候垃圾回收机制来不及回收,我们还是需要考虑自己实际去触发垃圾回收。
学习不能只停留表面,深入探究,找到一个一二三。
学习要学会举一反三。
入门只是进化的一小步。
我们经常说的一周入门python,其实我感觉3天就可以入门python了。Java入门也就是一周了。其实入门这是万水千山的开始。入门只是代表你有资格进入了这门语言行列,但是到真正的深入,你还要走一段很坎坷的路。