2011-06-24 98 views
0

我試圖減少我的Junit測試消耗的時間。因爲我的XML文件中有數百個與所有測試相關的bean,而我僅使用其中的兩個或三個。彈簧豆加載時間消耗

首先,我用立即進行實例化,所有的豆類在很beginning.The一次消耗加載情況如下:

37593,33672,32187,32141,32641(毫秒)

當我改變了實例化的方式來懶惰-INIT,它消耗的時間是如下:

18484,3784,3562,2859(毫秒)

有人可以告訴我爲什麼在第一次和第二次之間以lazy-init的方式急劇減少?

+1

您是否閱讀過關於「lazy-init」的文檔? http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-lazy-init – skaffman

+0

我的意思是當我第一次使用lazy-init ,加載xml需要18484ms,但第二次使用lazy-init時,它僅需3784ms。我知道lazy-init意味着什麼。也許我沒有清楚地說出我的問題,我對此非常感興趣。 – Southeast

+0

我認爲第一種情況下的開銷不是由您的測試環境要求的彈簧引起的,而是其他啓動引起的。使用lazy-init在第四次運行後刪除lazy-init時會發生什麼? – ruhsuzbaykus

回答

2

Lazy-init表示只有在啓動時需要的bean被實例化。所有其他bean instanciations將被延遲,直到需要。

爲了加速測試,您可以簡單地爲單元測試構建一個獨立的XML配置,其中只包含您需要的bean。唯一的缺點是需要額外的護理,以便文件保持同步。

+0

謝謝!但我仍然想知道爲什麼我使用lazy-init方式第一次使用18484毫秒,但第二次成本只有3784毫秒 – Southeast