Python导入性能-import载入测试

在使用Python中,import是非常非常常用的。

那它性能怎么样呢?今天就想测测Python的import性能。

首先,我这种测试,肯定不怎么准,充其量只能提供个参照,大家看看,就图一个乐呵吧。

 

● linux下,用time.time()进行的测试

因为赋值操作是语言的最基础操作,所以以赋值操作作为基准,做对比。

▲首先,确定赋值操作(a=1)的时间消耗:

3.09944152832e-06  (0.000003 s)

 

▲然后,我们来做一下import的测试:
1,如果导入某个自定义模块的py文件:
<module 'core.user' from '/opt/A-Socket/core/user.py'>

0.00202393531799   (平均0.002s)
▲导入导入某个自定义模块的pyc文件:
<module 'core.user' from '/opt/A-Socket/core/user.pyc'>
0.000988006591797  (导入pyc,速度快了一倍。平均0.001s )

▲把自定义模块放在Python的安装目录下:
<module 'user' from '/usr/local/lib/python2.6/user.pyc'>
0.000210046768188  (提高了一个数量级!我没看错吧!)

▲导入系统自带的os模块os.pyc:
5.96046447754e-06  (为什么导入os模块,速度如此惊人呢?!)
▲导入系统自带的socket模块socket.pyc
<module 'socket' from '/usr/local/lib/python2.6/socket.pyc'>
0.00739884376526  (导入socket模块pyc)

▲导入第三方模块:
<module 'setuptools' from '/usr/local/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/setuptools/__init__.py'>
0.0939381122589  (这个速度,也算可以接受)
▲导入第三方模块:
twisted.internet.protocol.Protocol
0.144118070602  (导入twisted这个第三方模块很耗性能啊……)

 


———————————————————————————————
● windows下,用time.clock()进行的测试

▲首先,确定赋值操作的时间消耗:
1.56498194252e-006

▲导入系统自带的os模块os.pyc:
<module 'os' from 'c:/python25/lib/os.pyc'>
5.10494109683e-006  (可以看出与Linux的速度几乎相同)

▲导入导入某个自定义模块的pyc文件:
<module 'core.user' from 'D:/A-Socket/core/user.py'>
0.0225309700273  (似乎比Linux慢一些……)

 


=====================================================

总结:

个人估计,python的导入,就是动态读文件的过程。文件大,读的就慢。如果不把导入模块设计好,似乎会形成性能上的瓶颈。

 除非是研究python底层的实现,才能搞懂导入是怎么回事,才能理解和突破速度瓶颈。

 

你可能感兴趣的:(linux,python,socket,Module,测试,import)