Amoeba

e50a420e anonymous 2010-09-26 16:52
193 名前:[名無し]さん(bin+cue).rar[sage] 投稿日:2010/09/26(日) 16:31:59 ID:W1aIjoFL0
cache.binの中見ると、なぜか32KBの0で埋まった部分が有るなと思ってたんだけど、
CacheManager.csの中で次の空きブロック決めてる

>var tempCluster = (long)System.Math.Ceiling((double)_fileStream.Length / CacheManager.ClusterSize) + 1;
>if (_fileStream.Length < tempCluster * CacheManager.ClusterSize)
> _fileStream.SetLength(tempCluster * CacheManager.ClusterSize);
>clusterList.Add(tempCluster);

この辺のせいっぽいな。普通この手の端数切り上げやりたいなら、切り捨てて+1すんじゃなくて

>var tempCluster = (_fileStream.Length+CacheManager.ClusterSize-1)/CacheManager.ClusterSize ;

みたいに、ブロックサイズ-1を足してブロックサイズで割って切り捨てだろう。

そして、cache.bin中身周辺に最終参照時間とか、参照階数とかなんも無いあたりに愕然とした。
まだガーベージコレクションする気が全然無いという意味で。

Top of this page. | <<last 0 1

limit: 15360KB

(Amoeba/142/11.4MB)


Powered by shinGETsu.