性能测量:Java vs Java卡

Performance measures : Java vs JavaCard

我在 Java 中实现了两个算法。

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

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

有了这些结果,我认为 JavaCard 有显着差异(在执行时间方面)。

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

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

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

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

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