第一次使用时,Jodatime的LocalDateTime很慢
我目前正在java项目中测试一些webapp技术,并且想知道为什么这些页面有时会加载很快,有时需要花费大约5秒来加载。
我终于发现它就是这条线
LocalDateTime now = new LocalDateTime();
当它第一次被调用时,需要永远获得当前时间。 在那之后调用时,即使是完全不同的地方,它也会非常快。
我正在使用
joda-time joda-time 1.6.2
有没有人有类似的经历? 真的卡在这里..我可以在我的应用程序的早些时候使用LocalDateTime来紧固后续调用 – 但这似乎相当沉闷。
编辑
我现在误用了Spring:
@Service public class JodaTimeLoader { public JodaTimeLoader() { LocalDateTime loadMe = new LocalDateTime(); } }
第一次这样做时,Joda Time会加载一些静态资源(例如,它的年代描述符 ),这是您所看到的成本。 这是一次性费用; 你按程序支付一次。 如果真的困扰你,请在启动期间尽早加载它,也许是这样的:
static { // Build the local caches inside Joda Time immediately instead of lazily new LocalDateTime(); }
Joda-Time专为长期运行的企业系统而设计,与其他应用程序中的更快性能相比,一次性前端加载时间无关紧要。
我的系统大约需要77毫秒。 这对于一堂课而言相当长。
也许你只需要在启动时调用它一次以确保它已经加载。
如果您想快速获得当前时间,可以使用System.currentTimeMillis(); 我第一次打电话时需要0.0018毫秒。