2

スクリプトファイルをプロファイリングする必要があります。問題の関数をプロファイラーで装飾し、実行するために@profile使用kernprof.py -l -v scriptfile.pyしました。これにより、以下の統計情報が得られました。

割り当て_dict[date_kw][objekt_id]['subs_kaa']=item[kaa_subs]には2.1µsかかりますが、約800万回呼び出され(これはほんの一部であり、最終的には約6,400万回になります)、スクリプトにはさらに多くの割り当てがあります。

ターゲット構造は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]
4

1 に答える 1

1

深いdict構造を浅いものに置き換えてみることができます。

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

_dict[ ( date_kw, objekt_id, 'subs_kaa' ) ]=item[kaa_subs]
于 2013-02-28T16:23:32.127 に答える