Java backend performance improvements (for Scala speedup)
Scala jobs, especially for the CPL course, may take a considerable time to complete, especially when the backend has not “warmed up”. This often results in timeouts (job takes takes more than 30s to complete).
This is likely caused by the huge amount of classes that needs to be loaded for Scala, and especially for the (parser) libraries used in the CPL course.
Some ideas for speed improvements that are fairly easy to realise:
Submitted by Elmer van Chastelet on 2 February 2021 at 10:27
- Load all backend files (binaries, config, libraries) from ramdisk. Theory: class loading from jar files in ramdisk will be faster than from disk, assuming that the OS has these files not in cache already. But I’m not sure if this is causing the slow class loading.
- Change self-test code to use classes from the libraries used in CPL, so backends will have these classes already loaded immediately after the start. Also, the backend should get more time to run this self-test for the first time before considering itself into error-state.
Log in to post comments