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 13
这个问题蛮有意思,我测试了一下:
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
上机测试一下不就知道了啊
|
18
WKPlus 2016-11-09 16:24:30 +08:00
@silva centos 上,查看 /proc/<pid>/status 文件,里面的 VmRSS 就是进程的物理内存使用量
|
19
silva OP |
20
WangYanjie 2016-11-09 21:13:53 +08:00
我觉得,你肯能弄反了, 注释不会, docstring 会。
首先 docstring 不是注释,其次既然你在运行时,是可以获取 docstring 的,那么显然 docstring 没有被忽略。 |