mirror of
https://github.com/SKCraft/Launcher.git
synced 2024-11-24 12:16:28 +01:00
Set better memory defaults.
This commit is contained in:
parent
c3c6febdbd
commit
4c8a65d8a3
@ -25,8 +25,8 @@ public class Configuration {
|
|||||||
private String jvmPath;
|
private String jvmPath;
|
||||||
private String jvmArgs;
|
private String jvmArgs;
|
||||||
private int minMemory = 1024;
|
private int minMemory = 1024;
|
||||||
private int maxMemory = 1024;
|
private int maxMemory = 0; // Updated in Launcher
|
||||||
private int permGen = 128;
|
private int permGen = 256;
|
||||||
private int windowWidth = 854;
|
private int windowWidth = 854;
|
||||||
private int widowHeight = 480;
|
private int widowHeight = 480;
|
||||||
private boolean proxyEnabled = false;
|
private boolean proxyEnabled = false;
|
||||||
|
@ -23,6 +23,7 @@ import com.skcraft.launcher.update.UpdateManager;
|
|||||||
import com.skcraft.launcher.util.HttpRequest;
|
import com.skcraft.launcher.util.HttpRequest;
|
||||||
import com.skcraft.launcher.util.SharedLocale;
|
import com.skcraft.launcher.util.SharedLocale;
|
||||||
import com.skcraft.launcher.util.SimpleLogFormatter;
|
import com.skcraft.launcher.util.SimpleLogFormatter;
|
||||||
|
import com.sun.management.OperatingSystemMXBean;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@ -35,6 +36,7 @@ import java.io.File;
|
|||||||
import java.io.FileFilter;
|
import java.io.FileFilter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.lang.management.ManagementFactory;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@ -87,13 +89,14 @@ public final class Launcher {
|
|||||||
SharedLocale.loadBundle("com.skcraft.launcher.lang.Launcher", Locale.getDefault());
|
SharedLocale.loadBundle("com.skcraft.launcher.lang.Launcher", Locale.getDefault());
|
||||||
|
|
||||||
this.baseDir = baseDir;
|
this.baseDir = baseDir;
|
||||||
this.properties = LauncherUtils.loadProperties(Launcher.class,
|
this.properties = LauncherUtils.loadProperties(Launcher.class, "launcher.properties", "com.skcraft.launcher.propertiesFile");
|
||||||
"launcher.properties", "com.skcraft.launcher.propertiesFile");
|
|
||||||
this.instances = new InstanceList(this);
|
this.instances = new InstanceList(this);
|
||||||
this.assets = new AssetsRoot(new File(baseDir, "assets"));
|
this.assets = new AssetsRoot(new File(baseDir, "assets"));
|
||||||
this.config = Persistence.load(new File(configDir, "config.json"), Configuration.class);
|
this.config = Persistence.load(new File(configDir, "config.json"), Configuration.class);
|
||||||
this.accounts = Persistence.load(new File(configDir, "accounts.dat"), AccountList.class);
|
this.accounts = Persistence.load(new File(configDir, "accounts.dat"), AccountList.class);
|
||||||
|
|
||||||
|
setDefaultConfig();
|
||||||
|
|
||||||
if (accounts.getSize() > 0) {
|
if (accounts.getSize() > 0) {
|
||||||
accounts.setSelectedItem(accounts.getElementAt(0));
|
accounts.setSelectedItem(accounts.getElementAt(0));
|
||||||
}
|
}
|
||||||
@ -108,6 +111,30 @@ public final class Launcher {
|
|||||||
updateManager.checkForUpdate();
|
updateManager.checkForUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates any incorrect / unset configuration settings with defaults.
|
||||||
|
*/
|
||||||
|
public void setDefaultConfig() {
|
||||||
|
double configMax = config.getMaxMemory() / 1024.0;
|
||||||
|
double suggestedMax = 2;
|
||||||
|
double available = Double.MAX_VALUE;
|
||||||
|
|
||||||
|
try {
|
||||||
|
OperatingSystemMXBean bean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
|
||||||
|
available = bean.getTotalPhysicalMemorySize() / 1024.0 / 1024.0 / 1024.0;
|
||||||
|
if (available <= 6) {
|
||||||
|
suggestedMax = available * 0.48;
|
||||||
|
} else {
|
||||||
|
suggestedMax = 4;
|
||||||
|
}
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.getMaxMemory() <= 0 || configMax >= available - 1) {
|
||||||
|
config.setMaxMemory((int) (suggestedMax * 1024));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the launcher version.
|
* Get the launcher version.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user