【发布时间】:2020-04-29 20:31:38
【问题描述】:
我正在优化在 AWS 上运行的 Python(版本 2.7;由于我需要使用旧模块而受到限制)脚本,并试图准确确定我正在构建的环境中需要多少资源。为此,我在脚本运行时将大量信息记录到控制台并对不同的资源配置进行基准测试。
其中一个瓶颈是一个包含 32,000 个项目的列表,它通过 Python enumerate 函数运行。这需要很长时间才能运行,并且我的脚本在完成之前对其进度视而不见。我假设 enumerate 正在以某种方式循环遍历这些项目,所以我认为我可以在该循环中注入日志记录或打印。我知道这是“hacky”,但它现在对我来说可以正常工作,因为它在我运行测试时是临时的。
我找不到函数从哪里运行(我确实在 numba 模块中找到了一个 Enumerate 类。我尝试在那里打印但它不起作用)。我知道它是__builtin__ module 的一部分,我也无法追踪它,并尝试了几种技术来找到它的确切位置,例如打印__builtin__.__file__,但无济于事。
我的问题是,a) 你们能帮我确定函数的位置吗?这是否是一个好方法?或 b) 如果有更好的方法。
感谢您的帮助!
【问题讨论】:
-
enumerate- 许多__builtin__函数 - 可能是用 C 编写的。
标签: python function logging python-2.x enumerate