1

我在 PyPy 1.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()”函数是什么?

4

1 回答 1

1

看起来在被分析的代码中某处使用了字典。

get(key[, default])

Return the value for key if key is in the dictionary, else default. 
If default is not given, it defaults to None, so that this method 
never raises a KeyError.

请参阅映射类型 - dictPython 字典 get() 方法

于 2012-05-25T00:38:48.347 回答