Difference between revisions of "Reducing memory usage"
Plebeian9000 (talk | contribs) m (Plebeian9000 moved page Reduce JVM MAXRam to Reducing memory usage: make article title for intuitve and discoverable) |
Plebeian9000 (talk | contribs) |
||
Line 1: | Line 1: | ||
+ | Bisq is known to be a resource-hungry application, so some users may want to '''reduce memory usage'''. | ||
+ | |||
+ | __TOC__ | ||
+ | |||
+ | {{Run_with_Java_options|<nowiki>-XX:MaxRAM=4g</nowiki>|Reduce Bisq's memory usage by setting a ceiling of 4GB.}} | ||
+ | |||
+ | == Background == | ||
+ | |||
One of the settings Java virtual machines (JVMs) use to calibrate how much physical memory to reserve at startup is '''MaxRAM''', and there is a good chance your JVM's default MaxRAM configuration is too large. | One of the settings Java virtual machines (JVMs) use to calibrate how much physical memory to reserve at startup is '''MaxRAM''', and there is a good chance your JVM's default MaxRAM configuration is too large. | ||
To check the default MaxRAM setting, run this <code>java</code> command: | To check the default MaxRAM setting, run this <code>java</code> command: | ||
− | + | java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version | grep MaxRAM | |
Look for the <code>MaxRAM</code> value (bytes) in the output. An example: | Look for the <code>MaxRAM</code> value (bytes) in the output. An example: | ||
− | + | 367: uint64_t MaxRAM = 137438953472 | |
− | This means the OpenJDK 11 JVM's MaxRAM setting is | + | This means the OpenJDK 11 JVM's MaxRAM setting is 128GB, much more RAM than the average desktop machine has. |
− | Experiments have shown running Bisq with a | + | Experiments have shown running Bisq with a 4GB MaxRAM setting reduces memory consumption by more than 50% (when starting a clean Bisq installation with an empty data directory). Setting MaxRAM to 2GB reduces resident memory usage even more, but setting it any lower (1536m) will result in an OutOfMemoryError and crash the app. |
− | As of version 1.3.2, Bisq | + | As of version 1.3.2, Bisq starts with a MaxRAM setting of 4GB. If you're still having issues, try setting the parameter yourself as described above. |
Revision as of 23:01, 28 April 2021
Bisq is known to be a resource-hungry application, so some users may want to reduce memory usage.
Contents
Command-line fix
Reduce Bisq's memory usage by setting a ceiling of 4GB.:
JAVA_TOOL_OPTIONS="-XX:MaxRAM=4g" /opt/bisq/bin/Bisq
/opt/bisq/bin/Bisq
is the default application directory on Linux. If you run another operating system, you'll need to replace that path with the one for your OS.
You can adjust the scaling factor as you wish, of course, and add any runtime options for Bisq as well.
GUI fix
To be able to launch the fix by double clicking an icon, rather than running a command in CLI, you can edit the launcher file to run, instead of the Bisq app directly, a shell script which injects said fix.
1. Create a text file (for example /opt/bisq/Bisq-runner.sh
) containing the following code:
#!/bin/bash JAVA_TOOL_OPTIONS="-XX:MaxRAM=4g" /opt/bisq/bin/Bisq
2. Make it executable:
chmod +x /opt/bisq/Bisq-runner.sh
3. Edit the launcher file (/opt/bisq/Bisq.desktop
and/or /usr/share/applications/Bisq.desktop
) by opening it in a text editor and modifying the Exec
line like follows:
Exec=/opt/bisq/Bisq-runner.sh
Background
One of the settings Java virtual machines (JVMs) use to calibrate how much physical memory to reserve at startup is MaxRAM, and there is a good chance your JVM's default MaxRAM configuration is too large.
To check the default MaxRAM setting, run this java
command:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version | grep MaxRAM
Look for the MaxRAM
value (bytes) in the output. An example:
367: uint64_t MaxRAM = 137438953472
This means the OpenJDK 11 JVM's MaxRAM setting is 128GB, much more RAM than the average desktop machine has.
Experiments have shown running Bisq with a 4GB MaxRAM setting reduces memory consumption by more than 50% (when starting a clean Bisq installation with an empty data directory). Setting MaxRAM to 2GB reduces resident memory usage even more, but setting it any lower (1536m) will result in an OutOfMemoryError and crash the app.
As of version 1.3.2, Bisq starts with a MaxRAM setting of 4GB. If you're still having issues, try setting the parameter yourself as described above.