Revision: 89
http://polepos.svn.sourceforge.net/polepos/?rev=89&view=rev
Author: carlrosenberger
Date: 2009-09-09 14:43:47 +0000 (Wed, 09 Sep 2009)
Log Message:
-----------
cr: Trying to make memory measurement more accurate. Raising the interval for memory measurement to 100ms so it does not interfere as much with performance measurement.
Modified Paths:
--------------
trunk/polepos/src/org/polepos/util/MemoryUtil.java
trunk/polepos/src/org/polepos/watcher/MemoryWatcher.java
Modified: trunk/polepos/src/org/polepos/util/MemoryUtil.java
===================================================================
--- trunk/polepos/src/org/polepos/util/MemoryUtil.java 2009-08-11 14:57:56 UTC (rev 88)
+++ trunk/polepos/src/org/polepos/util/MemoryUtil.java 2009-09-09 14:43:47 UTC (rev 89)
@@ -26,19 +26,27 @@
private static final int GC_TIMES = 5;
private static Runtime _runtime = Runtime.getRuntime();
- public static long usedMemory() {
+ private static long internalUsedMemory() {
return _runtime.totalMemory() - _runtime.freeMemory();
}
- public static void clear() {
- for (int i = 0; i < GC_TIMES; ++i) {
- System.gc();
- System.runFinalization();
+ public static long usedMemory() {
+ long usedMemoryBeforeGC = internalUsedMemory();
+ while(true){
+ for (int i = 0; i < GC_TIMES; ++i) {
+ System.gc();
+ System.runFinalization();
+ }
+ try {
+ Thread.sleep(10);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ long usedMemoryAfterGC = internalUsedMemory();
+ if(usedMemoryAfterGC >= usedMemoryBeforeGC){
+ return usedMemoryBeforeGC;
+ }
+ usedMemoryBeforeGC = usedMemoryAfterGC;
}
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- // ignore
- }
}
}
\ No newline at end of file
Modified: trunk/polepos/src/org/polepos/watcher/MemoryWatcher.java
===================================================================
--- trunk/polepos/src/org/polepos/watcher/MemoryWatcher.java 2009-08-11 14:57:56 UTC (rev 88)
+++ trunk/polepos/src/org/polepos/watcher/MemoryWatcher.java 2009-09-09 14:43:47 UTC (rev 89)
@@ -31,7 +31,6 @@
public void start() {
_stop = false;
- MemoryUtil.clear();
_maxUsedMemory = _startUsedMemory = MemoryUtil.usedMemory();
new MemoryWatcherThread().start();
}
@@ -55,7 +54,7 @@
public void run() {
while(!_stop) {
monitorMemory();
- ThreadUtil.sleepIgnoreInterruption(10);
+ ThreadUtil.sleepIgnoreInterruption(100);
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|