Oncard applet execution time (write operation)

My Java card applet store on Java card blocks with length 192 bytes (just byte arrays) without encryption . Total block count is 200. All blocks are allocated before with operator new. Off-card application could write at once any block count to card. For example it could write 10 blocks, and in this case there are required 10 calls to applet.

There is some statistics of time, which is required to write different count of such blocks:

Call count | Total time(sec) | Average timefor each call(sec)

1750.29

2790.33

90350.38

153740.48

What could be the reason why more calls take more time? May be it is some Java Card features?

p.s. In case of read operation time is approximately the same for any call count

[799 byte] By [Kerria] at [2007-11-27 1:19:14]
# 1

It is an storage architecture question. How would you store byte arrays belonging to an object, using C or Assembler? One possible way could be for instance to use linked lists --> when the amount of byte arrays increases, the pointer has to run longer distances to reach the end or the insertion point in the linked list. That could explain why the average time increases. I do not know how the storage mechanism is implemented in the smart card OS you are using. Java Card is not an architecture specification, so there is nothing mentioned how to implement the storage mechanism. There is a reference implementation in the Java Card Kit though, maybe you can find more hints there.

lexdabeara at 2007-7-11 23:55:38 > top of Java-index,Java Mobility Forums,Consumer and Commerce...