teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

ミス修正

2021/03/31 10:58

投稿

KojiDoi
KojiDoi

スコア13727

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  私の環境では2147483647回のループでシェルスクリプトを実行しようとするとメモリアロケーションエラーが出てクラッシュしてしまったので、1000000に減らして実行し、さらにperlとawkで同じことをやってみました。
2
2
 
3
+ ↓思い切りヤラカシていたので修正しました。結論は変わりません。
3
4
  ```
4
5
  $ time ( for i in {0..1000000}; do echo -n a ; done;) >/dev/null
5
6
 
@@ -7,18 +8,18 @@
7
8
  user 0m4.810s
8
9
  sys 0m0.390s
9
10
 
11
+ $ time awk 'BEGIN{for(i=0;i<=100000;i++){printf "a",i}}' >/dev/null
12
+
13
+ real 0m0.025s
14
+ user 0m0.023s
15
+ sys 0m0.002s
16
+
10
17
  $ time perl -e 'for(0..1000000){print "a"} ' >/dev/null
11
18
 
12
19
  real 0m0.080s
13
- user 0m0.077s
20
+ user 0m0.078s
14
21
  sys 0m0.003s
15
22
 
16
- $ time awk 'BEGIN{for(i=1000000;i<=10;i++){printf "a"}}' >/dev/null
17
-
18
- real 0m0.003s
19
- user 0m0.000s
20
- sys 0m0.003s
21
-
22
23
  ```
23
24
 
24
25
  どうやらawkが良さそうです。