MMgc template

MMgc内でもtemplateはよく見かけるけど、実際に使われていないものも多いみたい。 普段はおしゃべりなコメントも、template部分では寡黙になる。 重要そうなtemplateをメモ。

* Fat Pointer 通常の1 ワードから2 ワードに拡張したポインタ。1 ワード目は常にメモリブロックの先頭を指す「Base」、2 ワード目はポインタの指しているメモリがベースから何バイト離れているかを示す「Offset」になってい…

Flashのガベージコレクション – 遅延参照カウント

前回のエントリーの続きです。 Flashのガベージコレクションに関する正しい理解 ——————– Flash Player(AVM2)のガベージコレクション(以下 GC)は以下のアルゴリズムを採用しています。 (参照: AS3TuningInsideAVM2JIT.pdf) * Deferred Reference Counting (DRC) * Backed by incremental conservati…

mod_dbdでデータベース操作

Apacheモジュールの mod_dbd を試してみます。 mod_dbd はデータベースへのコネクション管理機能を提供するモジュール。 内部で apr_dbd を用いてコネクションプール機能を提供するラッパーモジュールとなっていて、 データベースへの各問い合わせは apr_dbd のAPIを利用します。 Apache Portable Runtime: DBD routines 今回は以下のようなテーブル(dbd_test.user)を対象に dbdtest_module を作ります。 (環境…

libevent

libeventを使ったhello, world的な小さなプログラム。 (libeventはmemcachedやThriftなどでも利用されているイベント通知API) ・ファイルが更新されたら内容を表示する

event_set 関数で EV_PERSIST を指定すると、イベント通知を継続して受け取ります。 これを指定しない場合は、コールバック関数内で再度 event_add 関数を呼び出す必要があります。 また、登録したイベント…

OpenCV 2.0 – cv::Mat 行列演算

前回に引き続き、cv::Matクラスについて。 今回は行列演算に関する機能を使います。 上記のシンプルな連立一次方程式を cv::Mat クラスの機能を使って解いてみます。

? 出力結果

CvMatでは cvmInvert -> cvmMul と関数を順番に呼び出さないといけないところを、 cv::Matなら matX = matA.inv()*matB のように直…

OpenCV 2.0 – cv::Mat

OpenCV C++ matrix class 前回、OpenCV 2.0 – cv::Ptr ではスマートポインタである cv::Ptr について調べました。 今回はOpenCV 2.0のC++インタフェースの中でも重要な役割を持つ cv::Mat クラスについて。 このクラスは従来の IplImage 及び CvMat に取って代わるものになっていますが、 かなり大きいクラスなので何回かに分けて調べていきたいと思います。 cv::Mat はマルチチャンネルとROI(Region …

OpenCV 2.0 – cv::Ptr

A template class for smart reference-counting pointers OpenCV 2.0では cv::Ptr という参照カウント方式のスマートポインタが用意されています。 これは Boost C++ Library の shared_ptr と同様のもので大変便利です。 参考:参照カウント – Wikipedia 一時的にcv::Ptrクラスのrefcountというメンバをprotectedからpublicに変更して挙動を見てみます。 (cx…

OpenCV 2.0を試してみた

この連休中にちょっとOpenCV 2.0で遊んでいました。 ライブラリの規模がかなり大きくなったのでソースを読むのも大変です; IplImage や CvMat は 新しいC++インタフェースでは cv::Mat に取って代わります。 (1.1preで追加されたWImageクラスの立場は? 関連:cv::WImage ? OpenCV 1.1) また、メモリ管理が賢くなっているので、後始末は各クラスのデストラクタに任せておきましょう。 boostのshared_ptrと同様のスマートポインタ(c…