0

彼ら。私は以下の結果について混乱しています:

1)。時間xxxxx

 real 0m28.942s
 user 0m28.702s
 sys 0m0.328s

2)。/usr/bin/time -p xxxxx

real 28.48
user 0.00
sys 0.13

それで。いくつか質問があります (user: 0m28.702s != 0, sys: 0m0.328s != 0.13):

  1. time と /usr/bin/time の違いは何ですか?
  2. 異なる CPU プラットフォーム、1 コアまたはマルチコアの違いは何ですか?

何か提案はありますか?</p>

4

1 に答える 1

1

を使用して、最初の質問に対する答えを見つけるのは非常に簡単typeです。

$ type time
time is a shell keyword
$ type /usr/bin/time
/usr/bin/time is /usr/bin/time

したがって、最初のコマンドは bash 組み込みを使用しますが、後者は外部プログラムに従います。ただし、使用しているシステムがわからないため、そのプログラムがどこから来たのかわかりません。Gentoo Linux では、/usr/bin/timeデフォルトではありません。使用可能な唯一の実装は、出力が異なるGNU timeです。


そうは言っても、あなたと同様のコマンドを試してみましたが(1Gファイルで動作していると仮定して)、次の結果が得られました。

$ time sed -e 's/0//g' big-file > big-file2

real    0m40.600s
user    0m31.295s
sys     0m4.174s

$ /usr/bin/time sed -e 's/0//g' big-file > big-file2
35.06user 3.31system 0:40.58elapsed 94%CPU (0avgtext+0avgdata 3488maxresident)k
8inputs+2179176outputs (0major+276minor)pagefaults 0swaps

ご覧のとおり、数字は似ています。

次に、結果を考えると(0ユーザー空間の時間はまったく不可能です)、あなた/usr/bin/timeは単に壊れていると思います。これは、作者にバグを報告する価値があるかもしれません。

于 2013-11-07T09:11:44.857 に答える