nDiki : 循環参照

循環参照 - circular reference

  1. 参照カウント方式の場合には、気が気でないもの。

Python循環参照検出機構ももっている。

C# + CLR の場合は参照カウント方式ではないので問題なし。

関連情報

  • メモリ管理
  • 弱参照 - weak reference
  • ソフト参照 - soft reference

スポンサード リンク

2004年1月23日 (金)

[ Perl ] Devel::Cycle

WiKickerメモリ消費量を抑えるためにメモリリークチェック用モジュールをいくつか試してみる。

  • Devel::Leak - リークをチェックするコードの最初と最後にサブルーチンを呼ぶ。リークはアドレスで表示される。
  • Devel::LeakTrace - use すると勝手にプログラムのリークをチェックする。表示は Devel::Leak と同じタイプ。dh-make-perl でうまくパッケージ化できなかったので試すのやめ。
  • Devel::ObjectTracker - perl -d:ObjectTracker ... として使用。プログラム実行のトレースをファイルに書き出す。デフォルトで標準出力にメッセージを吐くのでCGI プログラムでは困る。実行時ディレクトリに .objecttracer というファイルを置きその中に $Devel::ObjectTracker::verbose = 0; と書いておけば最初から出力を抑制しておける。が、試してみたらセグメンテーションフォルト。
  • Devel::Cycle - 指定したリファレンスを辿り循環参照が無いかを検出するサブルーチンを提供。
  • Test::Memory::Cycle - 上記のテストハーネス用のインタフェース

結局うまく使えそうなのは、Devel::Cycle ぐらいかな。 循環参照を発見した場合の表示は見やすい。 WiKicker の何か所かでチェックしてみたけど、今のところ見つからず。

スポンサード リンク
[ 1月23日全て ]

2004年2月22日 (日)

[ DiKicker ] 最低限の機能を実装

いい加減に実装の継承をバシバシしているので、コードが乱れているもののちょっとづつ動くようになってきた。

WiKicker循環参照も発見

1ヶ所相互参照しているオブジェクト生成を発見。 こいつが芋蔓式に他のオブジェクトの解放を妨げていた可能性大。

[ 2月22日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.115127s / load averages: 0.36, 0.50, 0.47
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker