从Java日历迁移到Joda日期时间

Che*_*eng 10 java jodatime

以前,当我第一次设计股票应用程序相关软件时,我决定使用它java.util.Date来表示股票的日期/时间信息.

后来,我意识到大多数方法都java.util.Date被弃用了.因此,很快,我重构了我的所有代码以供使用java.util.Calendar

但是,我遇到了两个缺点.

  1. 构造java.util.Calendar比较慢java.util.Date
  2. 在类的访问器getCalendar方法中Stock,我需要克隆一个副本,因为它Calendar是一个可变类

这是Stock.java的当前源代码

最近,我发现了Joda-Time.我做了以下基准,通过创建百万java.util.Date,java.util.Calendarorg.joda.time.DateTime.我发现在实例化过程中org.joda.time.DateTime表现更好java.util.Calendar.

这是基准测试替代文字 结果.

此实例化速度很重要,尤其是将创建许多Stocks实例,以表示股票的长期价格历史.

您认为从Java Calendar迁移到Joda Date Time是否值得获得应用程序速度性能?我需要注意什么陷阱?

Jon*_*eet 11

请注意,这java.util.Date也是可变的 - 所以如果现在你正在使用Calendar它是一个问题,那么它也会成为一个问题Date.也就是说,使用Joda Time 绝对值得做,因为它是一个更好,更好的API.

您的特定应用程序中的性能实际上是一个问题,您有多确定?你说会有"很多实例"的Stock创建......有多少?你有没有介绍过它?在大多数情况下,我不希望它真正发挥显着作用.从您的基准测试图中看,您实际测量的内容并不明显.

转移到Joda Time一般来说是一个好主意,但我会测量性能以确定它对您的真正差异.