python 的注释会占用内存么?
巴扎黑
巴扎黑 2016-11-09 16:44:37
0
1
1676

昨天遇到一个过来给我们普及下 python ,过程中间他提到 python 里的注释会占用更多内存,用三个引号"""阔起来就不会了 

我当时感觉这个说法太过匪夷所思,就问是何缘故,可惜他推说不记得了,只说曾经专门给某公司写了个脚本把所有的注释都用"""阔起来,当时就是为了避免空间浪费。 

下来之后我自己查找 python 的空间消耗一类的文章,未见有此说法。因此到此地找诸位高手求证

巴扎黑
巴扎黑

reply all(1)
phpcn_u29

这个问题蛮有意思,我测试了一下: 
1. 被 import 的函数没有注释,没有__doc__,进程启动后 RSS 4396KB 
2. 被 import 的函数带有~16MB 左右的注释,没有__doc__,进程启动后 RSS 4396KB 
3. 被 import 的函数没有注释,带有~16MB 的__doc__,进程其启动后 RSS 20036KB 
4. 被 import 的函数没有注释,没有__doc__,但是内部有一个没有使用到的~16MB 的 str 对象(不管是"""还是"引起来),进程启动后 RSS 20036KB 
5. 第四步的基础上,调用一次 gc.collect(),然后再统计进程内存使用,发现 RSS 4400KB 


所以我觉得 9hills 的猜测是对的,那位记反了:用"""的方式注释掉一段代码其实只是把它变成一个没有引用的 str 对象,还是占着内存的,#的方式注释才是真正的注释。 

不过从第 5 步的测试结果来看,"""方式的注释生成的只是一个没有引用的 str 对象, gc 的时候是可以回收掉的。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template