1

ここで説明するスクリプトをユーザーと一緒に実行すると、すべてがうまくいきます。

lorenzo@enzo:~/erlang/pei$ time erl -noshell -smp enabled -S 4 -s fib4 main 10000000

real    0m54.952s
user    1m16.090s
sys 0m0.070s

ルートとして実行すると、クラッシュしました。

lorenzo@enzo:~/erlang/pei$ sudo time erl -noshell -smp enabled -S 4 -s fib4 main 10000000
[sudo] password for lorenzo: 
74.68user 0.04system 0:53.56elapsed 139%CPU (0avgtext+0avgdata 66064maxresident)k
0inputs+0outputs (0major+8306minor)pagefaults 0swaps

エラーは再現可能です。

私の質問は次のとおりです。

  • 誰かがそこで何が起こっているのか私に説明しようとすることができますか?

  • erlangランタイムまたは私のOSに問題がありますか?

  • 誰かがこのエラーを再現できますか?

カーネルを使用してubuntunattyでerlang5.7.4を実行しています

Linux enzo 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

フェノムX4で。

4

2 に答える 2

7

なぜクラッシュしたと思いますか?timeルートとして実行すると、より多くの情報が表示されます。ページフォールトはエラーではなく、仮想メモリの動作方法です。

于 2011-08-10T19:42:49.803 に答える
3

2つの実行の違いは、最初の実行ではシェルビルトインを実行しているのに対し、2番目の実行ではパスで見つかったtimeものを実行していることです。これら2つのツールの出力形式は異なります。sudo/usr/bin/time

$ type time
time is a shell keyword
$ time echo


real    0m0.000s
user    0m0.000s
sys     0m0.000s
$ type /usr/bin/time
/usr/bin/time is /usr/bin/time
$ /usr/bin/time echo

0.01user 0.00system 0:00.00elapsed 1000%CPU (0avgtext+0avgdata 2784maxresident)k
0inputs+0outputs (0major+217minor)pagefaults 0swaps
于 2011-08-12T13:36:12.390 に答える