![]() | 1 shyling 2016-11-09 11:16:52 +08:00 会啊...__doc__ |
![]() | 2 myyou 2016-11-09 11:18:56 +08:00 应该不占用吧, python 编码为机器码时会忽略注释的内容。 |
3 ryanzyy 2016-11-09 11:19:18 +08:00 试试 python -OO |
![]() | 4 janxin 2016-11-09 11:19:47 +08:00 __doc__应该会,但是你说"""引用起来不会我就不懂了,等大神解释下? |
5 silva OP 看到有不少同学回复说__doc__的话,会占用,但是__doc__是在诸如函数之后的第一个字符串。并不是用#开始的注释。所以应该不是__doc__的原因吧。 顺便问下我如何才能在顶部补充自己的帖子,而不是回帖额。。。 |
![]() | 7 lhbc 2016-11-09 12:46:54 +08:00 via iPhone 1. 不会占用内存 2. 注释占用大量的硬盘空间 3. 注释严重影响载入速度, |
![]() | 8 coderluan 2016-11-09 13:34:56 +08:00 写了个脚本把所有的注释都用"""阔起来 这句话明确说明了他说的注释应该是__doc__之类的吧,没人会说因为"""占内存,所以再加些"""把他们注释了。 |
![]() | 10 9hills 2016-11-09 13:40:26 +08:00 #开头的不会,反倒是函数和类开头的"""包起来的会,因为是__doc__。。。 你说的那位应该是记反了。。。 |
12 silva OP |
![]() | 14 WKPlus 2016-11-09 15:39:43 +08:00 ![]() 这个问题蛮有意思,我测试了一下: 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 的时候是可以回收掉的。 |
16 silva OP @WKPlus 太感谢了,我还正在考虑找个 linux 环境,用进程内存来看大小呢,您就解决了。 看步骤,似乎 python 有自己查看内存大小的功能,但是我直接搜索"python rss",一无所获。能说明下关键词一类的麽,谢谢 |
17 dream7758521 2016-11-09 16:17:33 +08:00 via Android 上机测试一下不就知道了啊 |
19 silva OP |
20 WangYanjie 2016-11-09 21:13:53 +08:00 我觉得,你肯能弄反了, 注释不会, docstring 会。 首先 docstring 不是注释,其次既然你在运行时,是可以获取 docstring 的,那么显然 docstring 没有被忽略。 |