2010-10-29 61 views
0

我在我的.NET應用程序中部署了一些Java庫。我應該使用ikvmc將Java庫轉換爲DLL嗎,還是應該使用動態功能在運行時進行轉換?如何在IKVM靜態和動態模式之間進行選擇?

我期望使用ikvmc可以減少應用程序的初始負載。有沒有人有任何經驗來驗證這一點?另一方面,如果我走的是動態路線,我的構建過程將會簡單得多。

理論上,前期轉換也可以更早地捕獲轉換錯誤。但是,我的測試覆蓋範圍應該可以緩解這個問題。另外,我想象一下,ikvm可以在磁盤上緩存動態轉換的程序集,這樣只有第一次加載(可能是安裝的一部分)會更慢。儘管如此,我沒有在ikvm文檔中看到任何跡象表明這是事實。

回答

0

如果性能是您的一個因素,那麼您應該將其轉換爲DLL。時差非常大。如果你只有一個小的jar文件(一些KB),那麼你可以這樣做,因爲編譯時間與大小成線性關係。

但是,您持有對URLClassloader的單個實例的引用是很重要的。如果您重複創建一個新的URLClassloader,那麼它必須永遠編譯。而且JIT不能工作,因爲你使用了新的類。

如果你想看看它需要多長時間呼叫ikvmc yourJarFile.jar一次。這是您的程序需要額外啓動時間的時間。

相關問題