android - 为什么 joda time get 小时之间的差异占用如此多的内存

标签 android jodatime android-traceview

我有以下功能:

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

我正在尝试获取两个日期之间的小时数差异。

这是我的跟踪 View :

enter image description here

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

编辑:

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

编辑 2:实现 Joda 2.6 后:

enter image description here

最佳答案

这个issue最新的 Joda-Time-release v2.6 可能已经解决了这个问题,因为类 DateTimeZone 的类初始化(您观察到花费了大量时间)不再调用方法 setProvider0(),另请参阅此 commit .

关于android - 为什么 joda time get 小时之间的差异占用如此多的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777449/

相关文章:

java - 我如何检查 joda-time 是给定日期的第一周,第二周,......还是一个月的最后一周?

java - 如果电话时区已更改,则 SimpleDateFormat setTimeZone 不起作用

android - Traceview 无法从 DDMS 在 Eclipse 中打开

android - 解码大型 base64 字符串

android - ProfilePictureView to Bitmap (Facebook SDK for Android v3)

Java 8 Date 等效于 Joda 的 DateTimeFormatterBuilder,具有多种解析器格式?

安卓回合制多人自定义邀请画面

android - 在 Sqlite android 中插入整数值

android - Debug.startMethodTracing() 跟踪文件的目录