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

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

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

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

巴扎黑
巴扎黑

Antworte allen (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 的时候是可以回收掉的。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!