让我们说我要通过运行单个脚本在列表中保存100个浮点数,很可能需要一些内存来处理。所以如果这个代码每次都作为应用程序的要求执行,那么将会性能打击,所以我的问题是如何保持效率以获得性能。
模拟代码:
def generate_lglt():
float1, float2 = 27.2423423, 12.2323245
lonlats = []
for val in range(100, 0, -1):
lonlats.append(random.uniform(float1, float2))
lonlats.append(random.uniform(float1, float2))
lonlats.append(random.uniform(float1, float2))
lonlats.append(random.uniform(float1, float2))
lonlats.append(random.uniform(float1, float2))
print lonlats
感谢。
答案 0 :(得分:9)
瓶颈发生在意想不到的地方,因此从不优化代码只是因为您认为它可能是尝试改进的正确代码。你需要做的是
cProfile
模块在实际性能测试中对代码进行概要分析。答案 1 :(得分:2)
如果要在很多不同的时间调用generate_lglt(),您可能希望在每次调用代码时不再重新生成相同的范围(100,0,-1)。您可能希望在某处缓存该生成的范围并反复使用它。
此外,如果您要在不完成每次迭代的情况下退出for循环,请使用xrange而不是range。