2008年7月8日火曜日

ナノ秒

  • 関数の性能を測ったり、最適化するために。JavaではよくSystem.currentTimeMills()を取って関数にかかった時間をミリ秒で取るのですが、これは分解能がさほど高くなく(4ms程度の分解能とか)、しかも1ms以下で終わるような処理にはそもそも使えないわけです。
  • うーんコスト0msだなあ。でも0msかどうか知りたいわけじゃなく最適化したいんだよなあ。というケースの場合Java5からSystem.nanoTime()というのが使えるようになっていた。まあこれはそのものずばりで、関数の性能を測るためにつかってね。とjavadocにも書いてあるので、一般的なタイマーの用途には多分つかえんのだろうね。ためしてみると、場合によっては同じ関数ながしてもけっこう誤差がでる。
  • で使ってて違和感を感じたのは、「ナノ秒」という単位。10億分の1秒。ミリとの間にマイクロ(百万分の1)があるからなんか感覚的に数字の大きさが分からなくなりました。まあ俺の頭が賢くないからだけなんだが。その頭の中の整理だけのための記事
  • 1msec = 1,000μsec = 1,000,000nsec
  • 264,564nsec =0.264msecかー。

0 件のコメント:

コメントを投稿