第一次使用时,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毫秒。