以前,当我第一次设计股票应用相关软件时,我决定使用java.util.Date
表示股票的日期/时间信息。
后来我体会到了大部分方法java.util.Date
已弃用。因此,很快,我重构了所有代码以利用java.util.Calendar
然而,我遇到了两个缺点。
- 构造
java.util.Calendar
相对慢于java.util.Date
- 在访问器的 getCalendar 方法内
Stock
类,我需要克隆一个副本,如Calendar
是一个可变类
这是当前的源代码
最近我发现乔达时间 http://www.joda.org/joda-time/。我通过创建 1,000,000 进行以下基准测试java.util.Date
, java.util.Calendar
and org.joda.time.DateTime
。我发现org.joda.time.DateTime
表现优于java.util.Calendar
,在实例化期间。
Here is the benchmarking
result.
这种实例化速度很重要,尤其是要创建许多股票实例,以代表股票的长期价格历史记录。
您认为是否值得从 Java Calendar 迁移到 Joda Date Time 以提高应用程序速度性能?有什么需要注意的陷阱吗?
注意java.util.Date
也是可变的 - 所以如果现在你正在使用它是一个问题Calendar
,使用时会出现问题Date
也。也就是说,使用 Joda Time 是确实值得做的只是因为它是一个更好的 API。
您对性能的确定程度如何actually您的特定应用程序有问题吗?你说会有“很多例子”Stock
创造了……多少?你有分析过它吗?我不希望它在大多数情况下真正产生重大影响。从您的基准测试图表来看,您实际测量的内容并不明显。
总的来说,迁移到 Joda Time 是一个好主意,但我会衡量性能,看看有多大差异really为你做的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)