Affects Version/s: 18.104.22.168, 22.214.171.124
Fix Version/s: 126.96.36.199
I have been running into memory issues trying to solve this year's Advent of Code programming puzzles in CFML.
It seems to me as if Lucee holds on to all intermediate values used in a function until the function is finished.
Using the latest lucee/lucee52 docker image (188.8.131.52) with "LUCEE_JAVA_OPTS=-Xms256m -Xmx512m -Xloggc:/opt/lucee/web/logs/GC.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps":
And then nothing more. I see in GC.log that the JVM performs 1-2 full GCs every second and that it manages to free very little memory.
I have also tested to upgrade to 184.108.40.206-SNAPSHOT inside the container but that made no difference.
On Adobe ColdFusion 2016.0.0.298074 the script completes without issues and the time between every percentage of completion is fairly constant all the time.
The request should complete without issues. At any point in time the function is referencing very little data so the JVM should be able to GC the intermediate values.
Split up the work: