Python导入性能-import载入测试
来源:互联网 发布:云栈菜鸟淘宝打印组件 编辑:程序博客网 时间:2024/05/21 05:07
在使用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底层的实现,才能搞懂导入是怎么回事,才能理解和突破速度瓶颈。
- Python导入性能-import载入测试
- Python import(导入)
- python 导入模块 import 理解
- Python 导入机制 - import hook
- python import 不同层级导入
- 课题第五天-blastgraph载入性能测试
- python : import sqlite3 测试代码
- 【python】import导入顺序(风格)
- python模块导入及属性:import
- python import导入模块执行流程分析
- Python import语句导入模块语法
- Python-学习-import语句导入模块
- Python 使用import导入模块或者方法
- python——import导入模
- python使用import导入文件夹中的文件
- python的package import 以及相对导入和绝对导入
- python import 搜索路径及相对导入和绝对导入
- python for andorid : import sqlite3 测试代码
- 在Windows下mysql++支持UTF8
- CLR Via C#读书笔记——接口约束【2010-01-09】
- GCC-3.4.6源代码学习笔记(141-续1)
- cegui的looknfeel配置
- X下隐藏鼠标光标
- Python导入性能-import载入测试
- jdbc中从properties文件中读取数据库连接字符串
- TDD Tips
- Studying note of GCC-3.4.6 source (141 - cont 1)
- Linux 下 stdin stdout stderr 的由来
- 晕,IBM网站竟然被黑
- 学习批处理命令
- 实例学习SQL的Select命令
- 基类与派生类对象的关系