PUBLIC COMMENTS
Java support only ~300 time zones while Olson defines ~430 unique time zones.
The Solaris Management Console (SMC) needs access to the full set of Olson zoneinfo time zones in Solaris 9 through Java TimeZone interfaces.
SMC uses getAvailableID() to get a list of all available timezones on the current system. It displays the resulting list in the System Information Tool.
Customers can select a timezone from the list to be the new system default timezone.
SMC requires that getAvailableID() return the complete list of available timezones in the Olson public database. Currently, JDK1.4 only returns a subset of these timezones (~300 instead of the full 430 time zones).
An internal tool, called "javazic", which is equivalent to Solaris zic(1M)
is provided to generate zoneinfo data files. This tool will be for sun private use only in Merlin.
Since the javazic compiler is not publically available in JDK1.4, the only way SMC customers can access the full set of Olson zoneinfo data in Solaris 9 is through the Java TimeZone interfaces.
Bug 4230123 cited performance as an issue for creating large numbers of time zone objects.
" * Performance [bugID: 4230123]
When initializing time zone data in a Java runtime, it creates about
320 SimpleTimeZone objects and a hash table with those objects so that
a time zone can be searched with a time zone ID (e.g.,
TimeZone.getTimeZone(String ID)). However, usually an application that
deals with date/time requires only one local time zone. Creating ~320
SimpleTimeZone objects is a waste of CPU cycles (~200ms on 200MHz
Ultra-2) and memory space (~50KB). Also, the current SimpleTimeZone
defines a rule for daylight saving time schedule, such as "the first
Sunday of April", and the rule has to be interpreted with a concrete
date at run-time. This run-time calculation also affects run-time
performance."
The adoption of the Olson public source (zoneinfo) solution addressed the
performance issues cited in Bug 4230123. Eliminating the
SimpleTimeZone objects overhead has yielded faster runtime calendar calculation
(4-30%) and reduced heap size (30-500KB less) in the Calendar and TimeZone
area.
JDK 1.4 generates timezone database files for ~300 time zones. There are currently only an additional 130 time zones for which timezone database files need to be generated to deliver a complete set.
(See attached e-mail for background.)
|