0

OS/Xで「計算」する私のプログラムは、次のような時間を示します。

real    0m10.883s
user    0m6.924s
sys     0m3.957s

対照的に、近くの Linux システムでは、次のように表示されます。

real    0m7.480s
user    0m7.172s
sys     0m0.280s

さらに悪いことに、この状況は、ある特定のアルゴリズムを書き直した後に発生し、新しいものも古いものも明らかなシステムコールっぽいものは何もしません。

dapptrace と iprofiler をいじってみましたが、何も見つかりませんでした。これはすべて 10.8.2、xcode 4.2 です。問題のコードは C++ です。

ここにあるコードは (まだ) ここに投稿できるほど小さくありません。変わったところはSTLのベクタとマップが入っていると言えます。ただし、dapptrace は明らかにしていませんでした。

しかし、procsystime は、「madvise」がこの悪の根源にあるシステム コールであることを明らかにしています。

これを締めくくるために投票し、学んだことに基づいて新しい質問を書きます。

4

2 に答える 2

1
  1. 不思議なシスタイムを見たら、procsystimeあなたの味方です。システム時間の使用状況の簡潔な要約を提供します。
  2. に注意してくださいfree。OS/X では、freeが好きですmadvice。これはバグかもしれませんし、機能かもしれませんが、Linux で lickety-split を実行するコードは、OS/Xfreeではmadvise.
于 2013-08-22T22:33:08.437 に答える