windows 下和 linux下python的效率差很大怎么回事?
比如最简单的foriinrange(30):forjinrange(30):printi+j在Windows要差不多半分钟,linux下只要0.023秒。这个差别也太大了...
比如最简单的
for i in range (30):
for j in range (30):
print i + j
在Windows要差不多半分钟,linux下只要0.023秒。这个差别也太大了吧?是windows下的python配置有问题? 展开
for i in range (30):
for j in range (30):
print i + j
在Windows要差不多半分钟,linux下只要0.023秒。这个差别也太大了吧?是windows下的python配置有问题? 展开
5个回答
展开全部
你在windows下用的idle吧,因为print要输出到stdout,idle里sys.stdout是直到窗口的,窗口是用tkinter写的,所以执行的时候执行的操作比cmdline/shell里要多得多。
我在windows的cmd里执行这个需要0.3秒,在idle里要3秒。
我在windows的cmd里执行这个需要0.3秒,在idle里要3秒。
更多追问追答
追问
确实我用的idle。
但是即使不用print ,比如就换成 x += i + j 之类的速度也一样慢。
追答
我这里不用print的话,idle里面瞬间就完了。
def profile():
x=0
start=datetime.now()
for i in range (30):
for j in range (30):
x+=i+j
end=datetime.now()
print x
print end-start
>>> profile()
26100
0:00:00
>>>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
效率上我觉得差不多吧,一定是你的windows的配置有问题吧,你在命令行下用timeit模块测试一下吧。前提是去掉大量的标准输入输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stdout太花时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询