Author: nextgens
Date: 2006-05-26 11:59:52 +0000 (Fri, 26 May 2006)
New Revision: 8876
Added:
trunk/freenet/src/freenet/node/MemoryChecker.java
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeStarter.java
Log:
Reenable the MemoryChecker thread to see if it helps with the deadlocking issues
Added: trunk/freenet/src/freenet/node/MemoryChecker.java
===================================================================
--- trunk/freenet/src/freenet/node/MemoryChecker.java 2006-05-26 02:21:12 UTC
(rev 8875)
+++ trunk/freenet/src/freenet/node/MemoryChecker.java 2006-05-26 11:59:52 UTC
(rev 8876)
@@ -0,0 +1,36 @@
+package freenet.node;
+
+import freenet.support.Logger;
+
+public class MemoryChecker implements Runnable {
+
+ public void run() {
+ Runtime r = Runtime.getRuntime();
+ while(true) {
+ for(int i=0;i<120;i++) {
+ try {
+ Thread.sleep(250);
+ } catch (InterruptedException e) {
+ // Ignore
+ }
+ Logger.minor(this, "Memory in use:
"+(r.totalMemory()-r.freeMemory()));
+ }
+ try {
+ Thread.sleep(250);
+ } catch (InterruptedException e) {
+ // Ignore
+ }
+ // FIXME
+ // Do not remove until all known memory issues fixed,
+ // Especially #66
+ // This probably reduces performance, but it makes
+ // memory usage *more predictable*. This will make
+ // tracking down the sort of nasty unpredictable OOMs
+ // we are getting much easier.
+ Logger.minor(this, "Memory in use before GC:
"+(r.totalMemory()-r.freeMemory()));
+ System.gc();
+ System.runFinalization();
+ Logger.minor(this, "Memory in use after GC:
"+(r.totalMemory()-r.freeMemory()));
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-05-26 02:21:12 UTC (rev
8875)
+++ trunk/freenet/src/freenet/node/Node.java 2006-05-26 11:59:52 UTC (rev
8876)
@@ -2432,39 +2432,6 @@
return new HighLevelSimpleClientImpl(this, archiveManager,
tempBucketFactory, random, !DONT_CACHE_LOCAL_REQUESTS, prioClass);
}
- private static class MemoryChecker implements Runnable {
-
- public void run() {
- Runtime r = Runtime.getRuntime();
- while(true) {
- for(int i=0;i<120;i++) {
- try {
- Thread.sleep(250);
- } catch (InterruptedException e) {
- // Ignore
- }
- Logger.minor(this, "Memory in use:
"+(r.totalMemory()-r.freeMemory()));
- }
- try {
- Thread.sleep(250);
- } catch (InterruptedException e) {
- // Ignore
- }
- // FIXME
- // Do not remove until all known memory issues
fixed,
- // Especially #66
- // This probably reduces performance, but it
makes
- // memory usage *more predictable*. This will
make
- // tracking down the sort of nasty
unpredictable OOMs
- // we are getting much easier.
- Logger.minor(this, "Memory in use before GC:
"+(r.totalMemory()-r.freeMemory()));
- System.gc();
- System.runFinalization();
- Logger.minor(this, "Memory in use after GC:
"+(r.totalMemory()-r.freeMemory()));
- }
- }
- }
-
public BaseRequestThrottle getCHKRequestThrottle() {
return chkRequestThrottle;
}
Modified: trunk/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStarter.java 2006-05-26 02:21:12 UTC
(rev 8875)
+++ trunk/freenet/src/freenet/node/NodeStarter.java 2006-05-26 11:59:52 UTC
(rev 8876)
@@ -103,9 +103,11 @@
// FIXME : maybe we should keep it even if the wrapper does it
- // Thread t = new Thread(new MemoryChecker(), "Memory checker");
- // t.setPriority(Thread.MAX_PRIORITY);
- // t.start();
+ Thread t = new Thread(new MemoryChecker(), "Memory checker");
+ t.setPriority(Thread.MAX_PRIORITY);
+ t.start();
+
+
WrapperManager.signalStarting(500000);
try {
node = new Node(cfg, random, logConfigHandler,this);