タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

accuracyとchronoに関するyukimori_726のブックマーク (3)

  • 時間計測の精度(C++) - glace雑記

    プログラムの高速化を図るとき、無駄な処理を減らしたり、より計算量の少ないアルゴリズムを使ったりすると思います。そしてその結果、実際にどれくらい速くなったのか気になりますよね。 ここでは、プログラムの処理時間を計測する方法とその精度を調べたいと思います。 処理時間の計測 プログラムの処理時間を知る方法として、以下の2つが一般的でしょう。 プログラム内で時間を計測する プロファイラを使う プログラム内で時間を計測する方法は、ここからここまでの時間を調べたいといった場合に重宝します。 プロファイラは、ボトルネックとなる処理やメモリ使用量も含めて調べる場合に役立ちます。 今回は、プログラム内で時間を計測する方法に焦点を当てます。 C++で時間を調べる方法 少し調べたところ、だいたいこれくらい見つかりました。 clock (C標準) gettimeofday (Unix) QueryPerforma

    時間計測の精度(C++) - glace雑記
  • C++11による高精度なカウンター

    パフォーマンスを計測するには、高精度なカウンターが必要である。このカウンターは、決まった周期で値が刻まれることにより、正確な経過時間の計測ができる。 最近、GNU/Linuxに移行したので、またどうもこの環境に慣れていない。ともかくGNU/Linuxで高精度なカウンターを使う方法を調べることにした。つまり、Win32 APIでいうところの、QueryPerformanceCounterのようなものがほしい。 まず見つかったのはPOSIXのclock_gettimeだ。これを使えば、ナノ秒単位での分解能が得られる。ただし、timespec構造体が非常にややこしい作りになっている。秒とナノ秒に分かれているのだ。これは面倒だ。こんなインターフェースでは間違えたコードを書いてしまいそうだ。 また、未だにGNU/Linux環境におけるライブラリのリンク方法がよくわからないのだが、どうもclock_g

  • C言語/C++ 処理時間計測 入門

    概要 プログラム開発当初から過度のパフォーマンス最適化を行うのは良くないと言われている。 プログラムソースの柔軟性が失われる可能性があるし、必要無いかもしれない最適化に時間を費やすのは開発工数管理的に好ましくないからだ。 プログラムがある程度動作するようになり、パフォーマンスが悪い(実行速度が遅すぎる)場合は、 処理時間計測を行い処理時間を要している箇所を探しだし、アルゴリズムやデータ構造の変更などのパフォーマンス・チューニングを行う必要がある。 予備調査として、色々なアルゴリズム・データ構造を採用した場合の処理時間計測を行い、 どれが最適か、どのような性質があるかを知ることも重要である。 稿では、上記のような目的のためにプログラムの処理時間を計測する方法について説明する。 場合によっては、ストップウォッチを片手にプログラムを実行し、処理時間を計測することもあるかもしれないが、 精度が1

  • 1