我有以下功能:
public static int getDiffHour(Date first) {
int hoursBetween = Hours.hoursBetween(new LocalDate(first), new LocalDate()).getHours();
return hoursBetween;
}
我正在尝试获取两个日期之间的小时数差异。
这是我的跟踪 View :
该函数的执行需要大量的时间和资源 - 我在这里错过了什么。由于此函数占用了大量的 CPU 时间,我的服务在 5.0.1 上被终止。
编辑:
深入挖掘,我发现 99% 的 CPU 时间都被 LocalDate init 占用了。有没有办法可以避免这种情况并提供预先计算的日期?
编辑 2:实现 Joda 2.6 后:
最佳答案
这个issue最新的 Joda-Time-release v2.6 可能已经解决了这个问题,因为类 DateTimeZone
的类初始化(您观察到花费了大量时间)不再调用方法 setProvider0()
,另请参阅此 commit .
关于android - 为什么 joda time get 小时之间的差异占用如此多的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777449/