Python 配置文件:如何获取每个单独执行的时间(无聚合)
Posted
技术标签:
【中文标题】Python 配置文件:如何获取每个单独执行的时间(无聚合)【英文标题】:Python profile: How to get the time for each individual execution (no aggregation) 【发布时间】:2021-01-21 06:24:06 【问题描述】:我正在尝试调试一个基于 python 的项目,该项目涉及对同一组函数的多次重复调用。此代码是 API 的一部分。
但是,随着时间的推移,这些函数的执行时间会线性增加。我现在需要找出导致单个请求完成的总时间增加的原因。有没有办法分析 python 代码并获取每次执行重复调用函数的输出?
作为一个抽象的例子: 假设函数 1 涉及对函数 1、函数 2、函数 3 的调用。我调用函数 1 10,000 次,然后注意到函数 1 的执行最初需要 0.5 秒,但在调用 10,000 次时增加到 5 秒。如何判断是函数 1、函数 2 还是函数 3 导致了这种增加?
【问题讨论】:
【参考方案1】:如果是在 Linux 环境下,您可以使用 Linux perf tools
并检查每个函数的周期数、指令数、L1 缓存加载、L1 缓存未命中和 L2 缓存加载/未命中并一一比较。
在下面的示例中,您可以找到比较不同功能的示例。
【讨论】:
以上是关于Python 配置文件:如何获取每个单独执行的时间(无聚合)的主要内容,如果未能解决你的问题,请参考以下文章
如何将我的 python 字典的每个键值对存储在 json 文件的单独行中?
JAVA中获取一个文件中所有的函数方法,我想将每个方法都提取出来,单独显示
运行从 PowerShell 显式获取参数的 Python 函数(无需单独传递参数)