我注意到使用最新的插件(包含在java 8u31和7u75中)加载签名的applet要慢得多.我已经调试了很多情况,我发现问题与jnlp文件中引用的jar文件的大小直接相关.问题是,每次applet启动时,都会对缓存的jar文件进行一些"重新索引",这需要花费时间.
为了重现这个问题,我做了这个:我创建了一个最小的applet,在我用来部署它的jnlp文件中,我添加了几个不相关的.jar文件(甚至没有引用,所以类加载器不加载它们)相当大(例如30MB).当然我在jnlp中使用版本控制并捕获所有http流量以确保延迟不是因为流量(重新下载或证书撤销检查等).我在启用了跟踪的情况下运行applet,然后浏览了xml跟踪日志文件,找出了延迟的来源:它们总是来自JarSigningVerifier ....
有没有人见过这样的东西?
很容易看到并重现这种行为,我想知道是否有我忽视的东西.在过去几年中广泛使用applet,我完全迷失了可能发生的事情.我可以验证恢复到以前版本的插件(以及之前的所有其他版本)是否按预期工作.
我已经提交了oracle的错误报告,但我还没有收到回复.任何信息或想法都会有所帮助,TIA