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

2024-06-01

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

后来我体会到了大部分方法java.util.Date已弃用。因此,很快,我重构了所有代码以利用java.util.Calendar

然而,我遇到了两个缺点。

  1. 构造java.util.Calendar相对慢于java.util.Date
  2. 在访问器的 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 benchmarkingalt text result.

这种实例化速度很重要,尤其是要创建许多股票实例,以代表股票的长期价格历史记录。

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


注意java.util.Date也是可变的 - 所以如果现在你正在使用它是一个问题Calendar,使用时会出现问题Date也。也就是说,使用 Joda Time 是确实值得做的只是因为它是一个更好的 API。

您对性能的确定程度如何actually您的特定应用程序有问题吗?你说会有“很多例子”Stock创造了……多少?你有分析过它吗?我不希望它在大多数情况下真正产生重大影响。从您的基准测试图表来看,您实际测量的内容并不明显。

总的来说,迁移到 Joda Time 是一个好主意,但我会衡量性能,看看有多大差异really为你做的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Java 日历迁移到 Joda 日期时间 的相关文章

随机推荐

  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 如何使用 jQuery 在 ASP.NET MVC 3 中设置会话变量?

    所以这就是问题 如何使用 jQuery 在 ASP NET MVC 3 中设置 Session 变量 我正在尝试使用 ajax or post但问题是我真的不知道该怎么办 描述 只需发布到控制器并在那里设置会话变量即可 Sample jQu
  • 从 Silverlight 4 升级到 Silverlight 5 导致 AccessViolationException

    我们已经将项目从 Silverlight 4 升级到 Silverlight 5 现在我们正在体验AccessViolationException有时在代码的不同地方 这个异常也会导致浏览器崩溃 有什么指导方针可以防止这种情况发生吗 我正在
  • Monotouch 和本机 iOS 代码

    是否可以将使用 monotouch 编译的 C 库与单个应用程序中的 Objective C 前端链接起来 或者该应用程序必须是全部还是全无 这是可能的 但您不会从 MonoTouch 工具获得任何帮助 并且您无法摆脱这样一个事实 您仍然需
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • Objective-c中的贝塞尔曲线算法

    比我聪明的人可以看一下这个吗 我正在尝试实现我发现的贝塞尔曲线算法here http webtweakers com swag GRAPHICS 0074 PAS html在 Objective c 中 输出是错误的 我想我正确地转换了代码
  • 如何指定从 Delphi TStream 读取的组件的所有者?

    我正在从流中读取组件 并且希望能够指定 Owner 属性 var TComponent comp stream Seek 0 soFromBeginning comp stream ReadComponent nil 谁拥有 comp 我该
  • onTouchEvent()中如何区分移动和点击?

    在我的应用程序中 我需要处理移动和单击事件 一次点击是由一个 ACTION DOWN 操作 多个 ACTION MOVE 操作和一个 ACTION UP 操作组成的序列 理论上 如果您收到 ACTION DOWN 事件 然后收到 ACTIO
  • 是否可以在 Visual Studio 2008 和 Visual Source Safe 6.0 中使用 WinMerge?

    我想在解决方案资源管理器中使用 WinMerge 作为 VS2008 内的默认比较工具来代替 比较 上下文菜单项 这可能吗 我正在寻找一个快速替代当前乏味差异工具的工具 我只是更喜欢 WinMerge 我对进入文件夹资源管理器并在那里进行比
  • 如何在自定义操作期间移动进度条

    在安装程序中运行自定义操作时 没有进度条 我们正在使用立即 C 管理代码自定义操作 运行自定义操作时是否有其他方法显示进度 预先致谢 维卢 使用 ProgressText 元素 模板 属性是放置标记以反映进度的地方 例如 请参阅标准 Ins
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • DraggableScrollableSheet 拖动时不会给出工作表的当前位置

    在flutter中我们有一个小部件可拖动可滚动表 现在我想要子元素拖动时的当前位置或当前大小 目前还没有办法获得该值 它在其构建器方法中提供了 ScrollController 但那是在列表滚动时而不是在拖动列表时 那么还有另一种方法可以跟
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • ActiveRecord 布尔验证接受非布尔值

    我正在尝试验证属性是否为布尔值 即 true 或 false 从我期望的 Rails 指南中 validates new out of stock inclusion in true false 可以工作 但它接受非布尔值 例如 Hi 作为
  • 如何解决 google 地图中的 addDomListener() 弃用问题

    当我打电话时addDomListener or addDomListenerOnce const domNode document getElementById google maps event addDomListener domNod
  • 如何在 JavaScript 中从代理对构造 UTF-16 字符?

    以下计算 Unicode 代码点的 UTF 16 代理对 戴着医用口罩的脸 https emojipedia org face with medical mask 但是如何从代理对构造字符以在字符串中使用呢 const codepoint
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而