0

是否有可能爲一個編譯器(爲前。javac的)來掃描你的整個項目編譯之前未使用的方法和變量,然後編譯沒有這些未使用的方法和變量項目這樣你最終將得到更少的可執行代碼字節。編譯器的優化,以減少可執行代碼的字節

如果這將是一個編譯器的優化,我會創建一個包含所有我的輔助方法,一個巨大的圖書館,在我所有的項目導入,而不是擔心它是如此之大可能影響我的軟件大小。

我知道這可能是不可能的,如果你沒有這些庫的源代碼,你正在使用(導入),但我說的情況下,你的有源代碼

是否有工具/ IDE插件可以做類似的事情?我認爲這也可以在編譯之前一步完成。

回答

0

Java的編譯器不會做到這一點本身,而是你可以像使用ProGuard工具或任意數量的其他Java優化的刪除未使用的代碼。

但是,你的情況,你爲什麼不只是編譯大型軟件庫一次,並把它放在你的classpath?這樣你就不必複製它。

+0

如果我使用普通的Java編譯器來編譯我的大軟件庫,我編譯每個單獨的方法在圖書館雖然我只用很少的.. –

+0

ProGuard的似乎做正是我想要的。爲什麼Java編譯器不是在本地執行此操作,它似乎是一種很好的優化,在所有情況下都會生成較小的字節碼? –

+0

'.jar'文件可能不僅僅用於您的程序。 '.jar's可以鏈接到任何程序中,因此「死」代碼可能不會在另一個模塊中死掉。 – nneonneo