この記事を読むと・・・ |
---|
シェルスクリプトで処理速度が速いループ処理が理解できる |
【Linux】シェルスクリプトで使える比較演算子の使い方まとめ
この記事を読むと・・・シェルスクリプトで使える比較演算子が理解できる 【シェルスクリプトで使える比較演算子一覧】 Linuxのシェルスクリプトでは、様々な比較演算子…
『100000回echoコマンドを実行する』という条件で繰り返し処理を行った場合の処理速度を計測し、どのループ処理が速いかを検証しました。
目次
for文
for文を使用して100000回繰り返す処理の例です。
#!/bin/bash
# forループを使って100000回繰り返す
for ((counter = 1; counter <= 100000; counter++)); do
echo "$counter 回目の繰り返しです。"
done
timeコマンドを使用して計測した結果が以下の通りです。
# time ./for.sh >> /for.txt
real 0m1.379s
user 0m1.184s
sys 0m0.180s
1回目 | 2回目 | 3回目 | 平均処理時間 |
---|---|---|---|
1.379s | 1.462s | 1.335s | 1.392s |
while文
while文を使用して100000回繰り返す処理の例です。
#!/bin/bash
# whileループを使って100000回繰り返す
counter=1
while [ $counter -le 100000 ]; do
echo "$counter 回目の繰り返しです。"
((counter++))
done
timeコマンドを使用して計測した結果が以下の通りです。
# time ./while.sh >> /while.txt
real 0m1.530s
user 0m1.332s
sys 0m0.180s
1回目 | 2回目 | 3回目 | 平均処理時間 |
---|---|---|---|
1.530s | 1.601s | 1.660s | 1.597s |
until文
until文を使用して100000回繰り返す処理の例です。
#!/bin/bash
# untilループを使って100000回繰り返す
counter=1
until [ $counter -gt 100000 ]; do
echo "$counter 回目の繰り返しです。"
((counter++))
done
timeコマンドを使用して計測した結果が以下の通りです。
# time ./until.sh >> /until.txt
real 0m1.640s
user 0m1.405s
sys 0m0.215s
1回目 | 2回目 | 3回目 | 平均処理時間 |
---|---|---|---|
1.640s | 1.657s | 1.611s | 1.636s |
for文、while文、until文の処理速度検証結果
検証ケースは少ないですが、今回の検証ではfor文が1番速く、2番目がwhile文、until文が3番目という結果となりました。
大きな処理速度の差はみられませんでしたが、特に理由がなければfor文を使用し、for文が使いづらいパターンの場合、while文、until文を使用すればよさそうです。
処理 | 平均処理時間 |
---|---|
for文 | 1.392s |
while文 | 1.597s |
until文 | 1.636s |