Initialization of scala.Predef
class is lazy heavyweight operation which may cause unexpected slowdown of application and will become a trouble in situations when timing matters (like programming contests).
val a = new Array[Integer](10)
a(5) = 3 //slowdown on this line
So can I turn off it's laziness and force scala.Predef
initialization on application start using only scala compiler or VM options without making changes in the code?
No you can't. You can initialize an object by calling it, like this
Still, you will probably not have initialized the
ArrayOps
class which is involved ina.apply
. Lazy class initialization is a property of the JVM. If you do benchmarks, that's why you usually give it a "warmup" run first, so that all involved classes have been loaded first.