PyCharm职业2020.2
下面是通过列表理解和通过生成器理解求和列表的一些示例代码
def sum_with_generator():
return sum(i * i for i in range(1, 1_000_000))
def sum_with_list():
return sum([i * i for i in range(1, 1_000_000)])
def test():
time1 = datetime.datetime.now()
print(sum_with_generator())
time2 = datetime.datetime.now()
print(sum_with_list())
time3 = datetime.datetime.now()
print(f'Generator: {time2 - time1}; List: {time3 - time2}')
if __name__ == '__main__':
test()
如果不使用调试器在PyCharm中运行此代码,则
Generator: 0:00:00.055020; List: 0:00:00.092192
都不到十分之一秒。我想生成器速度更快,因为它不生成列表。
但是如果我在调试器下运行同样的代码:
Generator: 0:00:12.039189; List: 0:00:00.363289
生成器代码现在比以前慢了200多倍。列表代码只慢了大约四倍。在我的实际代码中,这种减速使我的代码无法命名。
这是PyCharm或Python的已知问题吗?有没有什么办法可以让经济放缓不那么严重?