1

ハッシュマップを保存する必要があります。キーは文字列、val は標準の Java TimeZone です。(1) TimeZone の Id 文字列の格納と (2) オブジェクト自体の格納の間で、より多くのメモリを節約できます。直感的には1と思いますが、TimeZoneはファクトリークラスだと友人に言われたので、(2)の方が効率的です。あなたの意見?tks

1:

gmtToIanaMap.put("GMT+10:00", "Australia/Sydney");

2:

gmtToIanaMap.put("GMT+10:00", TimeZone.getTimeZone("Australia/Sydney"));
4

2 に答える 2

0

読み込まれると、各タイムゾーン情報が (sun.util.calendar.ZoneInfoFile に) キャッシュされるため、実際には問題になりません。値にアクセスした後、とにかく TimeZone オブジェクトが必要な場合は、TimeZone オブジェクトを保存します。

そうは言っても、コメントで述べたように、それについてあまり心配する必要があるかどうかはわかりません. 私の理解では、そこには 24 以上 (x + 30 分のオフセット タイプをカバーするために 50 としましょう) のようなエントリがあります。タイムゾーン情報は、jre/lib/zi の下のディスクに保存されます。それらのほとんどは、サイズが 1k 未満です。メモリ内のオブジェクトはそれほど大きくないため、約 50k になります。あなたが本当に記憶に逼迫していない限り、これはほとんど無関係です。

最後に、これらすべては実際には 1 つの jre 実装に依存しており、それに基づいて設計する必要があるかどうかはわかりません。

于 2013-07-11T09:30:26.590 に答える