【问题标题】:Python: Size of Reference?Python:参考大小?
【发布时间】:2015-07-31 11:56:06
【问题描述】:

我有一个我正在计划的项目,我想知道一点信息是 reference 在 Python 中占用了多少内存。 AFAIK,python 中的引用与指针相同,我猜它与 32 位或 64 位指针的大小相同(但我可能错了)。

谁能帮我解决这个问题,这样我就不必继续猜测了吗?

【问题讨论】:

  • 这在很大程度上取决于您要使用的特定 python 实现。
  • 我不知道如何专门定位引用,但sys.sizeof() 可能会对您有所帮助,因为它以字节为单位返回对象的大小。
  • @dhke 我打算使用 CPython,但也可能使用 Cython 或 Stackless。
  • @SuperBiasedMan 好点,谢谢。看起来它是 8 个字节,这是您期望的 64 位程序中指针的大小。
  • sys.getsizeof() 返回被引用对象的大小,而不是引用本身。是的,Python 只是使用指针作为引用。

标签: python pointers memory memory-management


【解决方案1】:

这是通过我和 SuperBiasedMan 之间的讨论在 cmets 中得到回答的。 Python 中引用的大小与 CPU 的字长相同。所以,在 32 位的 Python 版本上是 4 个字节,在 64 位的 Python 上是 8 个字节。

【讨论】:

  • 请注意,除了指针本身的大小之外,可能还有与该引用相关的其他成本。例如,全局变量存储在 dicts 中,添加另一个全局变量可能对 dict 的大小没有任何影响,或者可能需要调整大小并将 dict 的大小几乎翻倍。
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 2019-05-22
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 2023-02-02
相关资源
最近更新 更多