2

我有以下功能:

public static int getDiffHour(Date first) {
        int hoursBetween = Hours.hoursBetween(new LocalDate(first), new LocalDate()).getHours();
        return hoursBetween;
    }

我试图获得两个日期之间的小时数差异。

这是我的跟踪视图:

在此处输入图像描述

该功能需要大量的时间和资源来执行 - 我在这里想念什么。由于这个函数占用了大量的 CPU 时间,我的服务在 5.0.1 上被终止了。

编辑:

深入挖掘,我发现 LocalDate init 占用了 99% 的 CPU 时间。有没有办法可以避免这种情况并提供预先计算的日期?

编辑 2:实施 Joda 2.6 后:

在此处输入图像描述

4

1 回答 1

2

最新的 Joda-Time-release v2.6可能已解决问题,因为类的类初始化(您观察到花费大量时间的地方)不再调用该方法,另请参阅此提交DateTimeZonesetProvider0()

于 2015-01-05T11:09:06.193 回答