分析,检测和改进分配性能?

时间:2013-02-28 16:18:14

标签: python profiling

我需要分析一个脚本文件。我用@profile修饰了有问题的函数,并使用kernprof.py -l -v scriptfile.py来运行探查器,它给了我下面列出的统计数据:

赋值_dict[date_kw][objekt_id]['subs_kaa']=item[kaa_subs]需要2.1μs,但大约需要800万次(这只是一小部分而且最终只有6400万次),而且脚本有更多的分配。

目标结构是dict(dict(dict(interger)))

有没有选择加快速度,即通过不同的方式复制值?

Line# Hits    TimePerHit % Time Line Contents
108   7977576 16362872   2.1    6.3  _dict[date_kw][objekt_id]['subs_kaa']=item[kaa_subs]
109   7977576 16251240   2.0    6.3  _dict[date_kw][objekt_id]['subs_kad']=item[kad_subs]
110   7977576 15967840   2.0    6.1  _dict[date_kw][objekt_id]['subs_kip']=item[kip_subs]

1 个答案:

答案 0 :(得分:1)

您可以尝试用深浅的dict结构替换你的深层dict结构:

_dict[date_kw][objekt_id]['subs_kaa']=item[kaa_subs]  =>

_dict[ ( date_kw, objekt_id, 'subs_kaa' ) ]=item[kaa_subs]