0

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?

FireFry
  • 125
  • 6

1 Answers1

0

No you can't. You can initialize an object by calling it, like this

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

Still, you will probably not have initialized the ArrayOps class which is involved in a.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.

0__
  • 66,707
  • 21
  • 171
  • 266