對幾種獲取字符串長度的方法進行性能比較

測試環境:

操作系統: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編程中,考慮效率最高的方式或是易用的程度去選擇。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章