PyPy1.8の「profile.py」でプログラムのプロファイルを作成します。
import profile
profile.run('run()', filename)
import pstats
p = pstats.Stats(filename)
p.sort_stats('time').print_stats(10)
プロファイリングの出力は次のとおりです。
Fri May 25 06:40:26 2012 profile.output
225308 function calls (220308 primitive calls) in 1832700302271.964 seconds
Ordered by: internal time
List reduced from 49 to 10 due to restriction <10>
ncalls tottime percall cumtime percall filename:lineno(function)
57000 15986440103363.266 280463861.463 15986440103363.266 280463861.463 :0(get)
7000 5696817988322.265 813831141.189 5696817988322.265 813831141.189 :0(getattr)
.....
この結果は、「get()」がプログラムのボトルネックであることを示しています。しかし、私は'get()'関数をまったく知りません。
Pythonの「get()」関数とは何ですか?