I created this toy example in scala
, my_file.scala
:
object MyObject {
def main(args: Array[String]) {
var ab = ArrayBuffer.empty[Int]
for (i <- 0 to 100 * 1000 * 1000) {
ab += i
if (i % 10000 == 0) {
println("On : %s".format(i))
}
}
}
}
I ran it with:
scala -J-Xms500m -J-Xmx7g my_file.scala
and
scala -J-Xms7g -J-Xmx7g my_file.scala
There are certainly noticeable pauses in -Xms500m
version. I am positive that the short pauses are garbage collection runs, and the long ones are heap allocations.