【发布时间】:2016-03-10 21:36:38
【问题描述】:
在我的工作中,我经常编写代码来读取文件中的行,并一次处理这些行。
有时候行处理比较复杂,文件比较长,比如今天处理200行大概需要一分钟,文件总行数是175k。
我想弄清楚我的代码的哪一部分花费了很长时间,为此我决定在 Python 中使用 cProfiler。
问题是我实际上无法运行整个代码,因为那会花费太长时间,如果我在退出信号中途中断进程,那么我的 cProfiler 也会死掉,而不会生成报告并使用逻辑修改代码以死经过一定的阅读后,仅前 K 行很烦人(因为我在工作中经常针对不同类型的数据进行这种事情。)如果可能的话,我想避免仅为了分析而添加选项。
告诉 cProfiler 运行 3 分钟、分析发生的情况、停止然后报告其发现的最简洁的方法是什么?
【问题讨论】:
-
您不能从文件中取出几行并创建第二行,以便对其进行分析并找到处理代码中的瓶颈吗?
-
是的,这完全有可能,但如果文件实际上不是 CSV 文件而是更复杂的文件(如 XML 或 json),通常会很麻烦。此外,我只是在编写一些研究代码,因此文件名在一些地方是硬编码的,我必须使其更加模块化,仅出于分析的目的。基本上我想尽可能避免改变。
-
你试过this method吗?