gpt4 book ai didi

java TimeZone getDefault 很慢?

转载 作者:行者123 更新时间:2023-11-30 11:23:47 28 4
gpt4 key购买 nike

我经常使用 TimeZone.getDefault 调用,我收到了来自客户的关于运行缓慢的报告。使用 jstack 检查线程堆栈跟踪,我看到许多线程被此方法阻塞:

"LoadBalancerClientSubscriber(7)" prio=10 tid=0x00000000010c2000 nid=0x4055 runnable     [0x00002aaaebc79000]
java.lang.Thread.State: RUNNABLE
at java.util.TimeZone.getDefaultInAppContext(TimeZone.java:734)
- locked <0x0000000512916db0> (a java.lang.Class for java.util.TimeZone)
at java.util.TimeZone.getDefaultRef(TimeZone.java:630)
at java.util.TimeZone.getDefault(TimeZone.java:622)
"RequestServiceThreadPool(5)" prio=10 tid=0x00002aaae01b2800 nid=0x4022 waiting for monitor entry [0x00002aaae8a47000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.util.TimeZone.getDefaultInAppContext(TimeZone.java:734)
- waiting to lock <0x0000000512916db0> (a java.lang.Class for java.util.TimeZone)
at java.util.TimeZone.getDefaultRef(TimeZone.java:630)
at java.util.TimeZone.getDefault(TimeZone.java:622)

这是已知行为吗?我应该缓存这个 TimeZone 对象吗?如果我的应用程序运行了好几个月(即使在 DST 更改期间),缓存它是否安全?

谢谢!

最佳答案

是的,这是一个已知问题:http://coffeedriven.org/2012/10/14/be-carefull-with-calendar-getinstance-and-timezone-gettimezone/

简单的解决方法是调用该方法一次并缓存结果。

关于java TimeZone getDefault 很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989719/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com