我需要分析一个脚本文件。我用@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]
答案 0 :(得分:1)
您可以尝试用深浅的dict结构替换你的深层dict结构:
_dict[date_kw][objekt_id]['subs_kaa']=item[kaa_subs] =>
_dict[ ( date_kw, objekt_id, 'subs_kaa' ) ]=item[kaa_subs]