diff --git a/htroot/api/termlist_p.java b/htroot/api/termlist_p.java index 456d06a3d..31b069d81 100644 --- a/htroot/api/termlist_p.java +++ b/htroot/api/termlist_p.java @@ -29,6 +29,7 @@ import net.yacy.cora.document.ASCII; import net.yacy.cora.protocol.RequestHeader; import net.yacy.cora.ranking.Rating; import net.yacy.kelondro.index.Row; +import net.yacy.kelondro.logging.Log; import de.anomic.search.Segment; import de.anomic.search.Segments; import de.anomic.search.Switchboard; @@ -39,6 +40,7 @@ public class termlist_p { public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { + final Log log = new Log("TERMLIST"); final serverObjects prop = new serverObjects(); final Switchboard sb = (Switchboard) env; Segment segment = null; @@ -50,10 +52,10 @@ public class termlist_p { if (segment == null) segment = sb.indexSegments.segment(Segments.Process.PUBLIC); final Iterator> i = segment.termIndex().referenceCountIterator(null, false); Rating e; - int c = 0; + int c = 0, termnumber = 0; byte[] termhash, maxterm = null; - long count, maxcount = 0, totalmemory = 0; - int termnumber = 0; + long count, mem, maxcount = 0, totalmemory = 0; + String hstring; final Row referenceRow = segment.termIndex().referenceRow(); final int rowsize = referenceRow.objectsize; final ArrayList deleteterms = new ArrayList(); @@ -68,17 +70,21 @@ public class termlist_p { if (count < mincount) continue; termhash = e.getObject(); if (delete) deleteterms.add(termhash); - prop.put("terms_" + c + "_termhash", ASCII.String(termhash)); + hstring = ASCII.String(termhash); + mem = 20 + count * rowsize; + prop.put("terms_" + c + "_termhash", hstring); prop.put("terms_" + c + "_count", count); - prop.put("terms_" + c + "_memory", 20 + count * rowsize); + prop.put("terms_" + c + "_memory", mem); + log.logWarning("termhash: " + hstring + " | count: " + count + " | memory: " + mem); c++; - totalmemory += 20 + count * rowsize; + totalmemory += mem; } if (delete) { for (final byte[] t: deleteterms) { try { segment.termIndex().delete(t); } catch (final IOException e1) { + log.logWarning("Error deleting " + ASCII.String(t), e1); e1.printStackTrace(); } } @@ -89,6 +95,11 @@ public class termlist_p { prop.put("termnumber", termnumber); prop.put("totalmemory", totalmemory); + log.logWarning("finished termlist_p -> terms: " + c); + log.logWarning("maxterm: "+ (maxterm == null ? "" : ASCII.String(maxterm))); + log.logWarning("maxcount: " + maxcount); + log.logWarning("termnumber: " + termnumber); + log.logWarning("totalmemory: " + totalmemory); // return rewrite properties return prop; } diff --git a/source/net/yacy/kelondro/util/GenerationMemoryStrategy.java b/source/net/yacy/kelondro/util/GenerationMemoryStrategy.java index e50211bd8..ecab523d4 100644 --- a/source/net/yacy/kelondro/util/GenerationMemoryStrategy.java +++ b/source/net/yacy/kelondro/util/GenerationMemoryStrategy.java @@ -115,14 +115,16 @@ public class GenerationMemoryStrategy extends MemoryStrategy { * @return bytes available to allocate in Eden Space (Young Generation) */ private final long youngAvailable() { - return youngUsage(true).getCommitted() - youngUsage(true).getUsed(); + final MemoryUsage usage = youngUsage(true); + return usage.getCommitted() - usage.getUsed(); } /** * @return bytes available to allocate in Tenured Space (Old Generation) */ private final long oldAvailable() { - return oldUsage(true).getCommitted() - oldUsage(true).getUsed(); + final MemoryUsage usage = oldUsage(true); + return usage.getCommitted() - usage.getUsed(); } /**