line_profiler只显示少量行
问题描述:
继line_profiler上的docs后,我能够简单地分析我的代码,但是当我使用python -m line_profiler script_to_profile.py.lprof
查看输出时,我只能看到27行代码。我期望看到大约250,因为这是我添加了@profile
装饰器的函数的长度。我的输出如下所示:line_profiler只显示少量行
Timer unit: 1e-06 s
Total time: 831.023 s
File: /Users/will/Repos/Beyond12/src/student_table.py
Function: aggregate_student_data at line 191
Line # Hits Time Per Hit % Time Line Contents
==============================================================
191 # load files
192 files = os.listdir(datadir)
193
194 tabs = ['Contact', 'Costs_Contributions', 'Course', 'EducationalHistory', 'Events', 'FinancialAidScholarship',
195 1 764 764.0 0.0 'PreCollegiateExam', 'QualitativeInformation', 'Student_Performance', 'Task', 'Term']
196 special_contact_id = {'Contact': 'Id',
197 1 7 7.0 0.0 'Events': 'WhoId',
198 1 6 6.0 0.0 'QualitativeInformation': 'Alumni',
199 1 6 6.0 0.0 'Student_Performance': 'Contact',
200 1 6 6.0 0.0 'PreCollegiateExam': 'Contact ID'}
201 1 6 6.0 0.0
202 1 5 5.0 0.0 # todo: make dictionary of the columns that we'll be using, along with their types?
203
204 df = {}
205 for tab in tabs:
206 1 6 6.0 0.0 # match tab titles to files by matching first 5 non-underscore characters
207 12 115 9.6 0.0 filename = filter(lambda x: tab.replace('_', '')[:5] in x.replace('_', '')[:5], files)[0]
它在for循环的中间被截断。
答
您可能在创建配置文件结果文件后修改了源文件,请尝试重新运行。 因为印刷的源代码line_profiler从磁盘上的文件,参考文献如下:
https://github.com/rkern/line_profiler/blob/master/line_profiler.py#L190
看来它拿起一些其他的代码。通常'for'循环执行n + 1次。你可以试着做[mcve]吗?这会让你更容易帮助你。 – MSeifert