代码是:
def slide_merge_forloop(rc1u,rc2wr):
ret1 = []
rc1ulen = len(rc1u)
rc2wrlen = len(rc2wr)
for i in xrange(min (rc1ulen, rc2wrlen)):
if rc1u[i] == rc2wr[i]:
ret1.append(rc1u[i])
elif rc1u[i] == 'N':
ret1.append(rc1u[i])
elif rc2wr[i] == 'N':
ret1.append(rc2wr[i])
else:
break
return ret1
下面是将此函数作为主代码的一部分进行分析的输出,这是使用profilehooks作为分析工具获得的:
*** PROFILER RESULTS ***
slide_merge_forloop (Early_matcher.py:73)
function called 224794 times
1181922 function calls in 1.004 seconds
Ordered by: cumulative time, internal time, call count
ncalls tottime percall cumtime percall filename:lineno(function)
224794 0.817 0.000 0.980 0.000 Early_matcher.py:73(slide_merge_forloop)
224794 0.097 0.000 0.097 0.000 {min}
449588 0.052 0.000 0.052 0.000 {len}
224794 0.024 0.000 0.024 0.000 {method 'disable' of '_lsprof.Profiler' objects}
57952 0.014 0.000 0.014 0.000 {method 'append' of 'list' objects}
0 0.000 0.000 profile:0(profiler)
显然我希望加快代码速度,但我遇到的问题是{min}部分是什么意思?在我的代码的这一部分中,我根本不会调用这样的东西,但它占用了大量的时间。我对“方法'禁用'”部分有同样的问题,因为我不明白它是什么。
非常感谢您理解此输出的任何帮助。