以前 Eclipse 版本 2 的時代,要是功能一多就會變得非常慢。除了體積大之外,耗用的記憶體資源跟恐龍一樣,功能還不怎麼樣。整個 Eclipse 平台啟動時,就會把所有 plugins 載入等著啟動。
當初訂 OSGi 標準的時候沒把「如果有上千個 bundle 時只要載入就會耗掉一拖拉股資源」的狀況考慮進來,或許應該是說沒考慮到「怎麼方便地讓 bundle 該載入的時候才載入而不會浪費系統資源」。
後來 Eclipse 版本 3 弄了個自有的載入與啟動方式,然後就經過了好長好長一段時間…
稍微看了一下 OSGi R4.1 規格書,Eclipse 所使用的方式應該是經過了一番驗證,變成新規格的一部分。
Bundle JAR 檔案中的 MANIFEST.MF 中可加上 Bundle-ActivationPolicy: lazy 這個宣告讓平台知道該 bundle 所使用的啟動策略。
新增參考文件:Lazy Activation Policy