Moh*_*ani 4 applet smartcard javacard globalplatform
我写了一个在磁盘上有19 KB大小的applet.它有三个类.第一个是从Applet扩展的,第二个是静态函数,第三个是我在applet中创建实例的类.
我有三个问题:
- 有没有办法找出我的javacard中的applet实例占用了多少大小?
(AFAIK)没有正式的方法(在GlobalPlatform/Java Card中).
您可以根据applet加载之前和安装之后的可用内存差异来估计实际内存使用量(最有可能在个性化之后 - 因为您可能会在个性化期间创建一些对象).找到空闲内存信息的一些方法是:
使用JCSystem.getAvailableMemory()(参见此处)提供所有内存类型的信息(如果已实现).
使用可检索的扩展卡资源信息标签GET DATA(参见TS 102 226)(如果已实施).
使用专有命令(询问供应商).
您可以查看.cap文件内部并查看加载到卡中的部件的大小 - 这个肯定非常不准确,因为卡操作系统可以自由决定处理内容.
我记得JCOP Tools有一些特殊的eclipse视图,它显示了当前applet的各种统计信息 - 也可能是提供信息的.
参考实现提供了获取一些资源消耗统计数据的选项- 也可能是有用的(尽管我从未使用过它).
- 有没有减少javacard applet(.cap文件)大小的工具?
- 你能解释一下帮助我减少applet大小的规则吗?
我会强调良好的设计和正确的代码重用,但肯定有很多关于通用优化技术的资源 - 我不知道任何Java卡特定的 - 在这里无法帮助:(
如果您将更多小程序加载到单个卡中,则可以将公共代码放入共享库中.
一些额外的(随机)笔记:
获得具有更大内存的卡可能更实际.
卡提供的可用内存信息可能不准确.
我想知道你的applet大小有问题,因为通常存在瞬态内存大小(AFAIK)的问题.
您的applet可能只是泄漏内存,因此使用越来越多的内存.
不要为较小的applet大小牺牲安全性!
祝好运!
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |