2014-01-06 45 views
0

初始化scala.Predef類的力scala.Predef初始化懶重量級的操作可能會導致應用程序意外放緩和定時事項時(如編程競賽)將成爲一個場合麻煩。在應用程序啓動,而不會影響代碼

val a = new Array[Integer](10) 
a(5) = 3 //slowdown on this line 

所以我可以關閉它的懶惰和力量scala.Predef初始化在應用程序啓動只用Scala編譯器或虛擬機選項,而在代碼進行更改?

+0

如果你需要這種級別的優化,也許你不應該在JVM上進行編碼。 – wheaties

回答

0

你就是不行。你可以通過調用它初始化對象,這樣

Predef // ensures the body of Predef is initialized 
val a = new Array[Integer](10) 
a(5) = 3 

不過,你可能不會初始化了ArrayOps類參與a.apply。惰性類初始化是JVM的一個屬性。如果你這樣做基準,這就是爲什麼你平時給它一個「熱身」先運行,因此,所有相關類都被第一次加載。

相關問題