如何在IKVM静态和动态模式之间进行选择?

时间:2010-10-29 18:56:43

标签: java .net performance ikvm aot

我正在.NET应用程序中部署一些Java库。我应该使用ikvmc将Java库转换为DLL,还是应该使用动态功能在运行时进行转换?

我希望使用ikvmc可以减少应用程序的初始加载。有没有人有经验来验证这个?另一方面,如果我采用动态路线,我的构建过程会相当简单。

理论上,前期转换还可以更早地捕获转换错误。但是,我的测试覆盖率应该可以缓解这个问题。

另外,我想ikvm可以在某个地方缓存磁盘上动态转换的程序集,这样只有第一次加载(可能是设置的一部分)会慢一些。我在ikvm文档中没有看到任何迹象表明情况就是这样。

1 个答案:

答案 0 :(得分:0)

如果性能是您的一个因素,那么您应该将其转换为DLL。时差非常大。如果您只有一个小的jar文件(某些KB),那么您可以这样做,因为编译时间与大小成线性关系。

但是,对URLClassloader的单个实例进行引用非常重要。如果你重复创建一个新的URLClassloader,那么它必须永远编译。 JIT也无法工作,因为你使用了新的类。

如果您想查看拨打ikvmc yourJarFile.jar一次需要多长时间。这是您的计划在额外的开始时间内所需的时间。