netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-11-26 [長年日記] ▲
_ [Java] String.intern の簡易版を作ってみた ▲
開発中の某システムで,同じ文字列がたくさん含まれたファイルをストリームから読み出すとき,文字列が各行ごとに個別にインスタンスが確保されてしまうので,HashMap を使って単一インスタンスに置換するようにしてみた.
実装は次の通り.すごく適当.
private static Map stringTable = new HashMap(); public static String toSingletonString(String s) { if (stringTable.containsKey(s)) { return (String)stringTable.get(s); } else { stringTable.put(s, s); return s; } }
しかし,こんなものでも,ストリームから読み込んでいる文字列のインスタンス数が少なく見積もって50万〜,互いに異なる文字列が数万と推定される環境で,フットプリントが1.3GB→1.0GBと減少.手間のわりには効果があって満足です.