gpt4 book ai didi

applet - 如何减小javacard小程序的大小

转载 作者:行者123 更新时间:2023-12-04 22:42:11 25 4
gpt4 key购买 nike

我写了一个在磁盘上有 19 KB 大小的小程序。它有三个类(class)。第一个是从 Applet 扩展而来的,第二个有静态函数,第三个是一个类,我在我的 applet 中从它创建一个实例。

我有三个问题:

  • 有没有办法找出我的 javacard 中的 applet 实例占用了多少大小?
  • 是否有任何工具可以减小 javacard 小程序(.cap 文件)的大小?
  • 你能解释一下帮助我减小小程序大小的规则吗?
  • 最佳答案

    1. Is there any way to find out how much size is taken by my applet instance in my javacard?

  • (AFAIK)没有官方方法可以做到这一点(在 GlobalPlatform/Java Card 中)。
  • 您可以根据小程序加载之前和安装之后(并且很可能在个性化之后——因为您可能会在个性化过程中创建一些对象)的空闲内存差异来估计实际内存使用情况。找出空闲内存信息的一些方法是:
  • 使用 JCSystem.getAvailableMemory() (见 here )它提供了所有内存类型的信息(如果实现的话)。
  • 使用可通过 GET DATA 检索的扩展卡资源信息标签(见 TS 102 226 )(如果实现)。
  • 使用专有命令(询问您的供应商)。
  • 你可以看看你的.cap文件并查看加载到卡中的部件的大小——这肯定是非常不准确的,因为卡操作系统可以自行决定处理内容。
  • 我记得 JCOP 工具有一些特殊的 eclipse View ,它显示了当前小程序的各种统计信息——也可能提供信息。
  • 引用实现提供了一个选项来获得一些 resource consumption statistics - 也可能有用(不过我从未使用过它)。

    1. Is there any tool to reduce the size of a javacard applet (.cap file)?

  • 我用了ProGuard过去是为了提高小程序的性能(实际上增加了小程序的大小,因为我主要将它用于方法内联)——但它也应该可以减少小程序的大小(例如,消除死代码——参见 shrinking options)。有很多不同的optimizations以及 - 只是看看,但不要指望奇迹。

    1. Can you explain rules that help me to reduce my applet size?

  • 我会强调良好的设计和正确的代码重用,但肯定有很多关于通用优化技术的资源——我不知道任何 Java Card 特定的资源——在这里帮不上忙:(
  • 如果您将更多小程序加载到一张卡中,您可以将公共(public)代码放入共享库中。


  • 一些额外的(随机)注释:
  • 买一张内存更大的卡可能更实用。
  • 卡提供的可用内存信息可能不准确。
  • 我想知道您的小程序大小有问题,因为通常存在 transient 内存大小(AFAIK)的问题。
  • 您的小程序可能只是在泄漏内存,从而使用越来越多的内存。
  • 不要为了更小的小程序而牺牲安全性!

  • 祝你好运!

    关于applet - 如何减小javacard小程序的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868614/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com