タグ

2010年12月30日のブックマーク (2件)

  • google mockで快適テスト生活 - くまメモ

    googleにより公開されているgoogle mockが使いやすかったので使い方紹介。 http://code.google.com/p/googlemock/ から落としてペペっと入れましょう。 使いたいシーンとしては、充分モジュール化されたオブジェクト指向プログラム中で int main(){ A a; B b; func(&a, &b); // a->hoge(1) と b->fuga(2,3) が呼ばれて欲しい! } この様に特定の関数が狙った通りの動作をして欲しい(というか、その動作をすることを仕様化したい場合) #include <gtest/gtest.h> #include <gmock/gmock.h> class mock_A{ public: MOCK_METHOD1(hoge,void(int)); // void hoge(int);と同義 }; class mo

    google mockで快適テスト生活 - くまメモ
  • lock-free stackと並行アルゴリズムの区分 - くまメモ

    この記事は カーネル/VM Advent Calendar http://atnd.org/events/10701 のために書かれました。 これまで複数回に渡ってlock-freeデータ構造を紹介して来ましたが そもそもの前提を話していなかったり目的も不明だったりと不備だった点があったので 根元から一度おさらいしてみたいと思います。 まずロックを用いる事の欠点から 上図のような構図でロックによる相互排他を行うと様々な問題が発生します。 具体的に言うと排他に成功したスレッドに様々な災難が降りかかります。 主な事例として ↑ロック確保できたのにOSによってプリエンプションされる。 ↑物理メモリに乗ってない仮想メモリにアクセスしてしまった。 ↑キャッシュミスヒットによるメモリ待ち。 そんなに気にするほどのパフォーマンス低下ではないと思うかも知れませんが マルチコアの方向へ舵を切った新世代CPU

    lock-free stackと並行アルゴリズムの区分 - くまメモ