拡散クエリの頻度

拡散クエリ要求が時間ベースだけのテキトウ管理だったのを修正。
応答も要求が来ただけ全部返していたので、ある程度は無視する条件をつけました。
問題になっていたメモリの増加は、実際に返す応答の3倍分のキーを作って混ぜていたのが影響していたようなので、SQLiteレベルでランダムに取得できるようにしました。(D側では応答分しかメモリを使わないように)
他、こまかいところで明示的にメモリを開放するように。

GCは動かないです。回収したりしなかったりで、その基準が分からない(ファイルサイズやビットマップなどがポインタに見られて、参照があると判断されている??)ので、自分で全部管理するよりもたちの悪い状況になっています・・。
4KB以上の配列が明示的に開放しないと回収されないような感じはしています。

他、Winnyの挙動が気になったので、「Winnyの技術」を読み直してみるとだいぶ違うことをしていたので、応答のキー数などはWinnyとあわせました。
今、もう一度「Winnyの技術」は読み直したほうがいいな・・と思いました。
10月に読んだときは、ぜんぜん印象が違ってみえました。
違う本みたい。