2005年12月20日 星期二 09:21
import time
class A:
def show(self):
print "A::show"
obj = A()
def f():
for i in range(100):
obj.show()
def g():
func = obj.show
for i in range(100):
func()
start = time.time()
f()
end = time.time()
print "time of f() is ", end-start
start = time.time()
g()
end = time.time()
print "time of g() is ", end-start
f和g完成的功能是一样的,猜一猜它们各自的运行时间是多少?在我的机器上,f的运行时间为0.11,而g的运行时间为0.05。
诚然f与g是不同的,然而仅仅的一点不同为何会引起效率如此显著的变化呢?这正是《Python源码剖析》所要关注的焦点。我希望《Python源码剖析》能"从Python源码中来,到Python应用中去",使Python用户能最好,最有效地使用Python。当然,对于对动态语言实现感兴趣的人,《Python源码剖析》也是一个非常好的起点。
在我的计划中《Python源码剖析》将分四个部分陆续开放:
1.Python的对象体系
2.Python的字节码解释器
3.Python的初始化环境与Import机制
4.Python的编译过程
目前已经开始开放第一部分,请关注http://blog.donews.com/lemur/
欢迎大家一起讨论,共同进步
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051220/4dce59b9/attachment.html
2005年12月20日 星期二 11:36
test On 12/20/05, Robert Chen <search.pythoner at gmail.com> wrote: > > import time > class A: > def show(self): > print "A::show" > > obj = A() > def f(): > for i in range(100): > obj.show() > > def g(): > func = obj.show > for i in range(100): > func() > > start = time.time() > f() > end = time.time() > print "time of f() is ", end-start > start = time.time() > g() > end = time.time() > print "time of g() is ", end-start > f和g完成的功能是一样的,猜一猜它们各自的运行时间是多少?在我的机器上,f的运行时间为0.11,而g的运行时间为0.05。 > > 诚然f与g是不同的,然而仅仅的一点不同为何会引起效率如此显著的变化呢?这正是《Python源码剖析》所要关注的焦点。我希望《Python源码剖析》能"从Python源码中来,到Python应用中去",使Python用户能最好,最有效地使用Python。当然,对于对动态语言实现感兴趣的人,《Python源码剖析》也是一个非常好的起点。 > > 在我的计划中《Python源码剖析》将分四个部分陆续开放: > 1.Python的对象体系 > 2.Python的字节码解释器 > 3.Python的初始化环境与Import机制 > 4.Python的编译过程 > > 目前已经开始开放第一部分,请关注http://blog.donews.com/lemur/ > > 欢迎大家一起讨论,共同进步 > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051220/9f305564/attachment.html
Zeuux © 2025
京ICP备05028076号