码迷,mamicode.com
首页 > 其他好文 > 详细

对几种获取字符串长度的方法进行性能比较

时间:2017-06-27 22:08:59      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:release   字符串   编辑器   操作系统   length   wc   

测试环境:

操作系统:CentOS release 6.8 (Final)

操作环境:vi编辑器

任务:对获取字符串长度的几种统计方法的性能比较。

测试数据如下:

1.变量自带的获取长度的方法

[root@sky9896 scripts]# time for n in {1..10000};do char=`seq -s "skyboy" 100`;echo ${#char} &>/dev/null;done

real    0m19.712s

user    0m5.271s

sys     0m10.414s

------------------------

real    0m18.697s

user    0m5.278s

sys     0m10.369s


2.利用expr自带的length方法

[root@sky9896 scripts]# time for n in {1..10000};do char=`seq -s "skyboy" 100`;expr length  ${char} &>/dev/null;done

real    0m36.181s

user    0m8.434s

sys     0m19.887s

--------------------------

real    0m36.677s

user    0m8.509s

sys     0m19.936s


3.利用管道加wc的方法

[root@sky9896 scripts]# time for n in {1..10000};do char=`seq -s "skyboy" 100`;echo ${char}|wc -L &>/dev/null;done

real    0m48.669s

user    0m15.029s

sys     0m40.589s

--------------------------

real    0m48.935s

user    0m15.125s

sys     0m40.630s


4.利用awk自带的length函数方法

[root@sky9896 scripts]# time for n in {1..10000};do char=`seq -s "skyboy" 100`;echo $char|awk ‘{print length($0)}‘ &>/dev/null;done               

real    0m54.038s

user    0m15.225s

sys     0m42.295s

--------------------------

real    0m53.177s

user    0m15.277s

sys     0m42.291s

   小结,经过两轮测试获得数据比较,第一种方式是用时最少,效率最高;第四种方式用时最多,效率最低。在Shell编程中,考虑效率最高的方式或是易用的程度去选择。



本文出自 “sky9890” 博客,请务必保留此出处http://sky9896.blog.51cto.com/2330653/1942505

对几种获取字符串长度的方法进行性能比较

标签:release   字符串   编辑器   操作系统   length   wc   

原文地址:http://sky9896.blog.51cto.com/2330653/1942505

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!