sodiumイオンにっき2.0

トップ アンテナ はてなアンテナに追加 WikiPage 本棚.org 今日はなんの日 <前の日記(2006 02/23) 次の日記(2006 02/25)> 最新 編集
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|

 この日記にツッコミを入れたい人は、ツッコミを入れたい日付をクリックすると、フォームが現れることもある模様です。


2006 02/24 [長年日記]

disp_referer2のvolatileキャッシュが馬鹿でかい件について その2

disp_referrer.rbを眺めてみる。何をやってるか頭に入ってないんでピープホールデバッグだけど……

171行目あたり、DispRef2CachePathクラスのcachesメソッドの返すキャッシュファイル名の中にvolatile.tdr2.cacheが入ってないな。それが何か関係あるかはわからないけど。

ただ、DispRef2CachePath#clearを呼んでもvolatile.tdr2.cacheは消されないってことではある。DispRef2CachePath#shrinkも同様。だけどそもそもキャッシュを生成しちゃいけないそうなんで、あんまり関係ないんだろうなぁ。

disp_referer2のvolatileキャッシュが馬鹿でかい件について その3

894行目のDispRef2Refs#initializeの「date = date.respond_to?( :date ) ? diary.date : nil」という行は「date = diary.respond_to?( :date ) ? diary.date : nil」という意図ですよね?

ここまででdateという変数は出てきてないからdate == nilで、date.respond_to?(:date)は必ずnilになって、volatileの指定と見做されると思われます。

で、日付のcacheを読み込むときでもvolatileを読み込むし、書き込みもvolatileにしか書かないからcacheが膨れ上がる。しかもshrinkもされない、って感じじゃないかなぁ。

disp_referer2のvolatileキャッシュが馬鹿でかい件について その4

キャッシュを使うか使わないかってDispRef2CachePathクラスやDispRef2PStoreクラスを定義するときに決定されるような気がするんだけど、このクラス定義のところのif文(158行目)が「unless @conf and @conf.secure then」としか訊いてないから「@options[disp_referrer2.no_cache]」の値とは無関係になっちゃってるような気がする。実際に使われているところを見ないとなんともだけど……

disp_referer2のvolatileキャッシュが馬鹿でかい件について その5

というわけで、とりあえず「その2」と「その3」についてパッチを作ってここのにっきには適用してみました。しばらく様子を見てまた報告します。

適用したパッチはこれです。

disp_referer2のvolatileキャッシュが馬鹿でかい件について その6

たださんの修正も入ったみたいだからもう要らないかな。ま、いいや。


[]