suchen

Heim  >  Fragen und Antworten  >  Hauptteil

python 的注释会占用内存么?

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

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

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

巴扎黑巴扎黑2942 Tage vor1681

Antworte allen(1)Ich werde antworten

  • 面对疾风吧

    面对疾风吧2016-11-09 16:45:01

    这个问题蛮有意思,我测试了一下: 
    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 的时候是可以回收掉的。

    Antwort
    0
  • StornierenAntwort