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