RFR 8025971 and 8026197

roger riggs roger.riggs at oracle.com
Tue Oct 15 20:50:16 UTC 2013


Hi Sherman,

On 10/15/2013 4:23 PM, Xueming Shen wrote:
> On 10/15/2013 01:03 PM, roger riggs wrote:
>> Hi Sherman,
>>
>> I can't help but notice that the tzdb.dat file is read using a 
>> doPrivilege block in
>> ZoneInfoFile.java but not in TzdbZoneRulesProvider.java.
>>
>
> TzdbZoneRulesProvider is package private. It is initialized inside the 
> doPrivilege
> block in the init code in ZoneRulesProvider.

Ok, it is fine as is.  In retrospect, I would probably have tried to keep
the doPriveleged block as close to and as narrow as possible around
the privileged operations; in this case the property check and the file 
open.
>
>
>> It is not new but is that correct?
>>
>> Was there an opportunity to check the performance before and after both
>> in the local a remote cases?  tzdb.dat  frequently needs to be read and
>> contributes to startup latency.
>
> The tzdb.dat should only be read in once in normal use scenario. The 
> buffered
> stream has limited help in local case, I had measured it lots of time 
> during
> last round. It definitely should help the "high-latency" remove 
> scenario though.
> I can measure the local case again before push, if desirable.

While tracking down JDK-8023639 
<https://bugs.openjdk.java.net/browse/JDK-8023639>, it was noticed that 
some of the latency
was do to initializating both TimeZone.getDefault and 
ZoneRulesProvider.getRules.

No need for more work if the buffered version does not improve startup.

Thanks, Roger

>
> -Sherman
>
>>
>> (Not a Reviewer),
>>
>> Roger
>>
>>
>> On 10/15/2013 3:35 PM, Xueming Shen wrote:
>>> Hi,
>>>
>>> Please help codereview the changes for
>>>
>>> 8025971: Remove Time-Zone IDs HST/EST/MST
>>> 8026197: Slow reading tzdb.dat if the JRE is on a high-latency, 
>>> remote file system
>>>
>>> http://cr.openjdk.java.net/~sherman/8025971_8026197/webrev
>>>
>>> Note: for 8026197, the only real native resource here needed to be 
>>> taken care is
>>> the FIS. The only thing can go wrong during the creation chain 
>>> appears to be the
>>> use scenario that the jvm runs out of memory, which means we are in 
>>> bigger trouble
>>> (given this is being run at the beginning of vm start in most use 
>>> scenario) than the
>>> release of the native resource. And the FIS resource will actually 
>>> be released via
>>> finalizer, even it fails to get released proactively here. So I 
>>> still go with the "embedded"
>>> style here. I did not use the explicit "32000" buffer size as well. 
>>> Using the default 8k
>>> buffer size can save us a memory allocation at the FIS's native code 
>>> and remove the
>>> dependency on a specific size of the tzdb file (for this particular 
>>> release).
>>>
>>> Thanks,
>>> -Sherman
>>
>




More information about the core-libs-dev mailing list