パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

2010年の最初に書くプログラムは何でしょうか?」記事へのコメント

  • GCを書いています。初めてなので、対象をスタックしておいて、レファレンスカウンタでデリートするかを判断する方式ですが、初日は解放漏れ(カウンタが0になっていない)が多数。
    • > レファレンスカウンタでデリートするかを判断する方式
      参照にループがあると必ずオブジェクトが残るのでお勧めしません。perlがこの方式なので無限ループを書いたときにゴミが増殖する場合があるという話を聞いたことがあります(私自身perlの実装見たことないですので本当かどうか知りませんが)。

      GCはとりあえずcopy&goをお勧めしておきます。conservative GCを書く必要があるならcopy&goは使えない(ものすごく考えれば出来るかも知れませんが -- 実例あったら教えて下さい!!)ですが、それであればBohemGCを導入すれば良い訳です。
      --
      Best regards, でぃーすけ
      親コメント
      • by Anonymous Coward

        参照にループがあると必ずオブジェクトが残るのでお勧めしません。

        それは承知の上でやっています。レファレンスカウンタと言っても、オブジェクトのリストは存在しているので、マーク&スイープとの併用も可能。まずは、相手にするオブジェクト数を減らしたいので、そのためにはレファレンスカウンタが簡単かなと思った次第です。

        ただ、Schemeの処理系で使うためですが、結構面倒くさいです。マーク&スイープの方が簡単ではないかと思いつつも、格闘中。

身近な人の偉大さは半減する -- あるアレゲ人

処理中...