性能指标:Java与JavaCard

时间:2015-05-26 12:09:30

标签: java performance time smartcard javacard

我用Java实现了两种算法。

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

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

根据这些结果,我认为在JavaCard中有一个显着的差异(就执行时间而言)。

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

如何在Java中解释它看起来快2倍,但不是在JavaCard中? 我注意到我不是在EEPROM中写入,而是在RAM中写入,因此它不能成为问题的根源。

你有任何理由来解释这种现象吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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