Java卡中某个方法执行的开始时间和结束时间有什么办法可以通知宿主?
Is there any way to inform the host starting time and ending time of a method execution in Java Card?
假设在Java卡片小程序的process
方法中有一些方法并且知道特定的方法何时开始运行[=执行对你来说很重要](即调用时间)和结束时间。这种情况,有什么方法可以在方法调用和方法退出的时候通知host(reader/user)吗?
例如,在下面的程序中,知道 Method2
何时开始执行以及何时结束对我来说很重要:
public void process(APDU apdu) throws ISOException {
if (selectingApplet()) {
return;
}
Method1(apdu);
Method2(apdu);
Method3(apdu);
}
JavaCard 没有内部时钟(因为你的智能卡里面没有电池)。
要测量 Method2(apdu)
的执行时间,您应该:
- 在reader.
中测量整个APDU执行时间
- 注释掉
Method2
并再次测量整个APDU。
- 比较结果。
你可以用类似的方法找出Method2
的大概开始时间和结束时间(注释掉测差)。不幸的是,JavaCard 代码的诊断绝非易事。
Java 卡片中没有在线日志。因为它不是安装在您的 windows 上的 IDEA 来向您显示服务器日志,例如 sysout 日志。
oncard 和 offcard 应用程序之间唯一的通信方式是 APDU。
有两种方法可以使用它们来达到你想要的任何目的:
1) 简单的方法。如果您想测试方法 2 的撕裂性,只需对每种方法使用不同的说明。意味着将 InsX 用于 Method2,如果小程序收到带有 InsX 的 APDU,则调用 Method2。现在您知道 Method2 何时调用,您可以并行测试撕裂。
2) 您可以使用逻辑频道并使用多选小程序。在此解决方案中,您可以同时拥有两个处于可选模式的小程序,您可以随时使用其他小程序向您发送 APDU。有关逻辑通道的更多信息,请参阅 here.
假设在Java卡片小程序的process
方法中有一些方法并且知道特定的方法何时开始运行[=执行对你来说很重要](即调用时间)和结束时间。这种情况,有什么方法可以在方法调用和方法退出的时候通知host(reader/user)吗?
例如,在下面的程序中,知道 Method2
何时开始执行以及何时结束对我来说很重要:
public void process(APDU apdu) throws ISOException {
if (selectingApplet()) {
return;
}
Method1(apdu);
Method2(apdu);
Method3(apdu);
}
JavaCard 没有内部时钟(因为你的智能卡里面没有电池)。
要测量 Method2(apdu)
的执行时间,您应该:
- 在reader. 中测量整个APDU执行时间
- 注释掉
Method2
并再次测量整个APDU。 - 比较结果。
你可以用类似的方法找出Method2
的大概开始时间和结束时间(注释掉测差)。不幸的是,JavaCard 代码的诊断绝非易事。
Java 卡片中没有在线日志。因为它不是安装在您的 windows 上的 IDEA 来向您显示服务器日志,例如 sysout 日志。 oncard 和 offcard 应用程序之间唯一的通信方式是 APDU。 有两种方法可以使用它们来达到你想要的任何目的:
1) 简单的方法。如果您想测试方法 2 的撕裂性,只需对每种方法使用不同的说明。意味着将 InsX 用于 Method2,如果小程序收到带有 InsX 的 APDU,则调用 Method2。现在您知道 Method2 何时调用,您可以并行测试撕裂。
2) 您可以使用逻辑频道并使用多选小程序。在此解决方案中,您可以同时拥有两个处于可选模式的小程序,您可以随时使用其他小程序向您发送 APDU。有关逻辑通道的更多信息,请参阅 here.