【问题标题】:Performance measures : Java vs JavaCard [closed]性能指标:Java vs JavaCard [关闭]
【发布时间】:2015-05-26 12:09:29
【问题描述】:

我用 Java 实现了两种算法。

为了比较它们的有效性,我调用每个函数 1000 次并比较执行时间(使用System.currentTimeMillis())。

执行第一个需要 2500 毫秒,第二个需要 1300 毫秒。

有了这些结果,我认为 JavaCard 有显着差异(就执行时间而言)。

但是如果我在 JavaCard 上加载 2 个小程序,它们对应于所描述的功能,第一个需要 2000 毫秒,第二个需要 1750 毫秒...

如何解释在 Java 中,它看起来快了将近 2 倍,但在 JavaCard 中却没有? 我注意到我不是在 EEPROM 中写入,而是在 RAM 中写入,所以它不会是问题的根源。

你有什么论据来解释这种现象吗?提前谢谢你。

【问题讨论】:

  • 强制注释“如何在 Java 中编写正确的微基准测试?” stackoverflow.com/questions/504103/…
  • Java 和 JavaCard 是两种完全不同的技术——它们只共享一部分语法,仅此而已。只是“JavaCard”这个词可能有点误导......我认为你不应该寻找 Java 和 JavaCard 之间的任何联系。
  • 请给我算法代码。

标签: java performance time smartcard javacard


【解决方案1】:

你运行的算法是在两个不同的平台上,所以最终的机器语言不一样。

【讨论】:

    【解决方案2】:

    基准测试在 Java 中并不简单。您不能只在循环中调用方法并期望获得一致且可靠的结果。您必须考虑许多因素,编译器优化和 GC 仅举几例。为 Java 挑选一个性能测试工具来正确地完成它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      相关资源
      最近更新 更多