Update: E-Sys 3.24 has also been tested with JRE x64
E-Sys comes with its own 32bit Java Runtime Environment (JRE) and since it’s 32bit, maximum memory that can be allocated is 2GB. The runtime uses about 200MB, leaving about 1.8GB usable memory for the application. This free memory must be contiguous, however, before it can be use by JVM. So, just because you have 16GB of RAM, doesn’t mean you can allocate full 1.8GB to E-Sys. This is also the reason why sometimes, it works with 1GB+, other times, you can only allocate 512MB.
Enter JRE 64bit. JRE x64 appears to not have the limitation of JRE 32bit in that I can consistently allocate 4GB of RAM every single time.
1) Download and install vcredist_x64.exe from this link: https://www.microsoft.com/en-us/download/details.aspx?id=40784
2) For E-Sys 3.26 and newer Only: Download and install JRE 7 x64 from here: https://mega.nz/#!DN813aCD!B5bLE8yC2RuGRGUfI-yioO8FG5qZUIu5QHunyKEPjFw or from Oracle if you have an account
3) For E-Sys 3.24 Only: Download and install JRE 6 x64 from here: https://mega.nz/#!3YcjVShK!Zq3QH-2_WSCdpRRvNa7Ocikbyp44_bM0aWNtxZOatNs or from Oracle if you have an account
4) Delete or relocate the content of the JRE folder under E-Sys (C:\EC-Apps\ESG\E-Sys\jre)
5) Copy the contents of the JRE you installed into E-Sys JRE (from C:\Program Files\Java\jre6 or C:\Program Files\Java\jre7 to C:\EC-Apps\ESG\E-Sys\jre)
6) Run E-Sys Launcher and configure memory as you see fit.
I can run E-Sys consistently using 3.5 and 4GB RAM allocated to it.
How to check how much memory is allocated to E-Sys.
1) Open the current log file (usually in C:\Data\Logs)
2) Search for "javamem".
You should see something like the following:
Java (used/javamem): 17,016,928 # Java (full): 127,795,200 # Java (max): 4,260,102,144 # Process (full/procmem): 486,379,520 # Process (virtual): 5,224,296,448 # Process (virtual max): 140,737,488,224,256
The number in bold (4,260,102,144) is the maximum memory JVM can use, in this case, just a tad bit lower than 4GB.