Python - 大文档字符串会浪费内存吗?

标签 python memory-management docstring

我知道在 Python 中,字符串只是一个表达式,并且字符串本身会在将控制权返回给代码的调用者时立即被垃圾回收,但是...

  1. 大型类/方法文档字符串 你的代码:他们浪费内存吗 通过构建字符串对象?
  2. 模块级文档字符串:它们是 由解释器无限存储?

这还重要吗?我唯一担心的是,如果我使用像 Django 这样的大型框架或多个大型开源库,它们往往会被很好地记录下来,可能有数兆字节的文本。在这些情况下,文档字符串是为一路使用的代码加载到内存中,然后保存在那里,还是像普通字符串一样立即收集?

最佳答案

  • “我知道在 Python 中,字符串只是一个表达式,字符串本身会在将控制权返回给代码的调用者时立即被垃圾回收”,我认为这是一种误解。文档字符串被评估一次(不是在每次函数调用时)并且至少在函数执行期间保持事件状态。

  • “这有关系吗?”当谈到优化时,不是通过抽象地思考而是通过测量来回答的。 “数兆字节”的文本在内存密集型应用程序中可能不是很多。节省内存的解决方案可能存在于其他地方,您可以通过测量确定是否属于这种情况。

  • Python 的 -OO 命令行开关删除文档字符串。

关于Python - 大文档字符串会浪费内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738904/

相关文章:

python - 哪个效率更高 : Python docstrings or type-hints?

python - 提取数值

c - 结构中的二维数组 - 可能吗?

c++ - 为什么 delete 不将指针设置为 NULL?

c# - 是否每个用户定义的类都需要实现 IDisposable 接口(interface)来收集垃圾

clojure - 使用无点样式定义的文档函数

python - 如何用更短和自定义的内容有选择地覆盖 python 帮助(MYclass)中的文本?

python - 如何与 anaconda 64 位一起安装 python 32 位

python - 在 Pandas/Python 中处理时间序列

python - 在 Twisted 客户端中生成 header