python3.1.2_为什么python3.1比2.6慢?

{(考虑从以下代码中增加的)测试次数:from timeit import Timer

def find_invpow(x,n):

"""Finds the integer component of the n'th root of x,

an integer such that y ** n <= x < (y + 1) ** n.

"""

high = 1

while high ** n < x:

high *= 2

low = high/2

while low < high:

mid = (low + high) // 2

if low < mid and mid**n < x:

low = mid

elif high > mid and mid**n > x:

high = mid

else:

return mid

return mid + 1

def find_invpowAlt(x,n):

"""Finds the integer component of the n'th root of x,

an integer such that y ** n <= x < (y + 1) ** n.

"""

low = 10 ** (len(str(x)) / n)

high = low * 10

while low < high:

mid = (low + high) // 2

if low < mid and mid**n < x:

low = mid

elif high > mid and mid**n > x:

high = mid

else:

return mid

return mid + 1

x = 237734537465873465

n = 5

tests = 1000000

print "Norm", Timer('find_invpow(x,n)', 'from __main__ import find_invpow, x,n').timeit(number=tests)

print "Alt", Timer('find_invpowAlt(x,n)', 'from __main__ import find_invpowAlt, x,n').timeit(number=tests)

使用Python2.6(Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) [GCC 4.4.3] on linux2),报告的时间是:

^{pr2}$

但是,在使用Python3.1(Python 3.1.2 (r312:79147, Apr 15 2010, 15:35:48) [GCC 4.4.3] on linux2)的同一台机器上,时间是:Norm 28.4206559658

Alt 26.8007400036

有人知道为什么这段代码在Python3.1上运行速度慢三倍吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值