Can Java code MLE because of high -Xmx

Revision en1, by mbrc, 2019-01-05 13:17:49

According to the blog about languages, the -Xmx option for Java is set to 512M. So consider 1097F - Alex and a TV Show from Hello 2019, with a ML of 256M. In this problem, my submission 47948716 takes > 200M memory. With n = 1e5, q = 1e6, t = 1, x = <cycle through 1 .. n>, v = 1,the code takes ~207M on Custom Test. But by setting -Xmx130M, this still runs on my system in time (without -Xmx it took ~270M on my system). This probably means that Java doesn't garbage collect as it still has memory left.

Also according to the following StackOverflow answer: ...Java will use as much memory as it is allowed to, at which point it will garbage collect. To work around this, you can specify a smaller max heap size in the JVM settings. You do this with the -Xmx setting....

Since Codeforces sets the -Xmx to 512M and many problems have ML 256M, is it possible that a piece of code continues to take up memory (since it can go upto 512M) without garbage collecting, and consequently gets MLE verdict, when it could have actually done with 256M and some garbage collection?

Tags java, java memory usage

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English mbrc 2019-01-05 13:17:49 1247 Initial revision (published)