python3字符串连接方法效率测试
来源:互联网 发布:淘宝分享有礼活动效果 编辑:程序博客网 时间:2024/06/05 08:24
用代码来测试效率其实是不够准确的,每个人测出来的结果可能都不一样,况且随着类库版本升级也说不定哪天底层算法就变了,或者运行环境变了等等,那么现在这些测试就更不准确了。现阶段效率测试仅仅是给自己写脚本习惯找个理由而已。
测试环境基于centos6x32和python3,测试三种字符串连接方式:用连接符 +, 用.join()方法,和用‘%s' % (字符串替换)
测试办法是每一种连接做20次,循环10W次,一共做5次取平均时间作比较,分两种情况:
第一种情况,链接字符串用变量。主要代码如下:
a='a'
for i in range(cyc):
y = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a;
for i in range(cyc):
y = ''.join([a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a]);
for i in range(cyc):
y = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s' % (a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a);
测试结果:+连接符0.19秒,join()方法0.11秒,%s替换方法0.17秒。
第二种情况,连接字符串用明文方式,加测了一种python独有的主要代码如下:
for i in range(cyc):
y = 'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a'+'a';
for i in range(cyc):
y = ''.join(['a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a']);
for i in range(cyc):
y = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s' % ('a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a');
加测了一种python的字符串直接连接的方法
for i in range(cyc):
y = 'a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a';
测试结果:+连接符0.0099秒,join()方法0.071秒,%s替换方法0.0097秒,字符串直接连接方法0.0098秒。
额外测试,随着字符串的长度变长,各项测试用时均有一定幅度上升,+连接符和%s替换方式用时增加幅度明显高于join方法。在连接次数很庞大的情况下,比如上万次,+连接符用时会暴涨,但这里不做过多考虑,因为一般情况下用+连字符的情况很少高于20次。
总结:
1. 如果对字符串变量作连接,优先用join方法。
2.如果对明文字符串做连接,优先用+连接符或%s替换方式或字符串直接连接,效果都要好于join。
- python3字符串连接方法效率测试
- 字符串连接效率测试
- C#中字符串连接效率测试
- 【转载】JAVA中字符串连接效率的测试
- 关于js中连接字符串效率的测试例子!
- 字符串连接效率探究
- 字符串连接效率测试:stringbuilder》stringbuffer》+ 【转:尽量使用StringBuilder和StringBuffer进行字符串连接】
- 三种字符串连接方法的效率比较
- 5种字符串拼接方法效率的测试
- python3字符串方法
- python3 字符串方法
- python3 字符串所有方法
- 代码效率测试方法
- 效率测试方法
- python3连接oracle的测试
- python3连接mysql和测试
- javascript中字符串连接效率
- VB6字符串连接操作效率
- python里面Nose和pytest的区别
- 关于直播,所有的技术细节都在这里了
- The linux command line--part 4 Writing Shell Scripts
- SQL注入
- C++基础篇
- python3字符串连接方法效率测试
- ObjectArx 窗体显示错乱
- Java五个最常用的集合类之间的区别和联系
- Ant-design 快速上手
- linux文件解压
- 缓存
- SYS_GUID()与sequence的比较
- 数据预处理与特征选择
- war包tomact部署