You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不修改生成的Python文件,仅通过命令行用cProfile获取CPU时间?

用cProfile命令行分析CPU时间(无需修改代码)

我想纯靠命令行用cProfile统计CPU时间,因为我的Python文件是自动生成的,不想动它。运行python3 -m cProfile后得到用法提示:

$ python3 -m cProfile
Usage: cProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg]

但提示里没说[arg]是什么意思,也没说能不能用。下面是最小复现示例:

$ mkdir foo
$ touch foo/__main__.py
$ python3 -m cProfile -m foo
         805 function calls (803 primitive calls) in 0.000 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      2/1    0.000    0.000    0.000    0.000 {built-in method builtins.exec}
        1    0.000    0.000    0.000    0.000 <string>:1(<module>)
        1    0.000    0.000    0.000    0.000 <frozen runpy>:201(run_module)
      2/1    0.000    0.000    0.000    0.000 <frozen runpy>:105(_get_module_details)
        ...

关于[arg]的说明

[arg]是传递给你要分析的脚本或模块的命令行参数,不管你用-m module模式还是直接指定脚本文件,都可以添加这些参数:

  • 若分析单个脚本:python3 -m cProfile my_auto_script.py param1 param2,这里的param1和param2会被脚本通过sys.argv读取
  • 若分析模块(如示例中的foo):python3 -m cProfile -m foo param1 param2,这些参数会被foo/__main__.py通过sys.argv获取

这些参数不会干扰cProfile的性能统计功能,只是原样传递给目标代码,刚好满足你不想修改自动生成文件的需求。

内容的提问来源于stack exchange,提问作者joel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 00:22:27