擅长:python、mysql、java
<p><a href="https://docs.python.org/3.5/library/sys.html#sys.getsizeof" rel="nofollow noreferrer">https://docs.python.org/3.5/library/sys.html#sys.getsizeof</a></p>
<p><code>sys</code>是特定于系统的,因此很容易区分。这常常被每个人忽视。python中所有特定于系统的东西都已经在<code>sys</code>包中转储多年了。例如,根据定义,<code>sys.getwindowsversion()</code>是不可移植的,但它是存在的。它就像是跨平台编码的完美世界中被拒绝的无底深渊。你看到的是一个有趣的Python掘金。</p>
<p>来自<code>getsizeof</code>文档:</p>
<blockquote>
<p>Only the memory consumption directly attributed to the object is accounted for, not the memory consumption of objects it refers to.
<code>getsizeof()</code> calls the object’s <code>__sizeof__</code> method and adds an additional garbage collector overhead if the object is managed by the garbage collector.</p>
</blockquote>
<p>当使用垃圾回收时,操作系统将添加这些额外的位。如果您阅读了Python和GC Q&A<a href="https://stackoverflow.com/questions/9449489/when-are-objects-garbage-collected-in-python">When are objects garbage collected in python?</a>,那么人们已经深入到了极其详细的内容中,阐述了GC以及它将如何影响内存/引用计数和位blah blah。</p>
<p>我希望这能解释这是从哪里来的。如果您不使用<code>system</code>级别的属性,而是使用更多的pythonic属性,那么您将获得一致的大小。</p>