yuelang85
2013-07-20 23:05:19 +08:00
同意1楼,设定下超时看看?
别的问题没看出来,看出两个地方有性能问题:
第一个:
22行:你这里字符串拼接用的是 加法,这样会导致产生八十多个字符串对象,而且第N+1号字符串是第N号字符串超集。如果文本够大,你这个将会严重侵占内存。建议改成这种形式(行首句点表示缩进):
result = []
for line in response:
....result.append(line)
result_str = ''.join(result)
第二个,37行,三处问题。
1,range这个函数会生成list对象,浪费,建议使用xrange,他生成 迭代器,可以提高速度。
2,i这个变量,实际上是做为坐标取birthdayRange的值,那么这里就没有必要len(birthdayRange),而且还range一下。直接for i in birthdayRange,迭代birthdayRange的各个元素。
3,range(len(birthdayRange))在这种上下文中,用起来不好(xrange也是),比较高效的用法:
i = 0
max = len(birthdayRange)
while i < max: #这里用max是因为如果直接用len(),len函数会被调用len(birthdayRange) 遍。
....pass #该干啥干啥
....i+=1
如果你又需要序号i,有需要使用birthdayRange的元素,那么用enumerate。