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中获取一个文件中所有的函数方法,我想将每个方法都提取出来,单独显示

linunx获取命令帮助

运行从 PowerShell 显式获取参数的 Python 函数(无需单独传递参数)

在 Spark 中对 RDD 执行 group by 并将每个组写入单独的 Parquet 文件

Mule项目的超级pom配置