【Linux】処理速度が速いループ処理はどれ?(for,while,until)

処理速度が速いループ処理はどれ?(for,while,until)
この記事を読むと・・・
シェルスクリプトで処理速度が速いループ処理が理解できる

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.379s1.462s1.335s1.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.530s1.601s1.660s1.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.640s1.657s1.611s1.636s

for文、while文、until文の処理速度検証結果

検証ケースは少ないですが、今回の検証ではfor文が1番速く、2番目がwhile文、until文が3番目という結果となりました。
大きな処理速度の差はみられませんでしたが、特に理由がなければfor文を使用し、for文が使いづらいパターンの場合、while文、until文を使用すればよさそうです。

処理平均処理時間
for文1.392s
while文1.597s
until文1.636s
よかったらシェアしてね!
  • URLをコピーしました!
目次