diff --git a/router/java/src/net/i2p/router/JobQueue.java b/router/java/src/net/i2p/router/JobQueue.java index 42ddadf5a..f56b25f9e 100644 --- a/router/java/src/net/i2p/router/JobQueue.java +++ b/router/java/src/net/i2p/router/JobQueue.java @@ -58,7 +58,16 @@ public class JobQueue { private final Object _jobLock; /** how many when we go parallel */ - private static final int RUNNERS = 4; + private static final int RUNNERS; + static { + long maxMemory = Runtime.getRuntime().maxMemory(); + if (maxMemory < 64*1024*1024) + RUNNERS = 3; + else if (maxMemory < 256*1024*1024) + RUNNERS = 4; + else + RUNNERS = 5; + } /** default max # job queue runners operating */ private final static int DEFAULT_MAX_RUNNERS = 1;