<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>YaCy '#[clientname]#': Performance Settings for Memory</title>
    #%env/templates/metas.template%#
    <script type="text/javascript" src="js/html.js"></script>
  </head>
  <body id="PerformanceMemory">
    <script type="text/javascript"><!--
	function reloadGraph() {
	  if(document.forms["optionreloadGraph"].option.checked)
	  	document.images["graph"].src="PerformanceGraph.png?time="+(new Date()).getTime();
	  window.status="";
	}
	window.setInterval("reloadGraph()", 1000);
	//--></script>
    #%env/templates/header.template%#
    #%env/templates/submenuComputation.template%#
    <h2>Performance Settings for Memory</h2>
    
    <p><img src="PerformanceGraph.png" id="graph" alt="PerformanceGraph"/></p>
    <form id="optionreloadGraph" action="" method="get"><p><input type="checkbox" name="option" id="autoreload"/> <label for="autoreload">refresh graph</label></p></form>
	<form action="PerformanceMemory_p.html" method="post" enctype="multipart/form-data" accept-charset="UTF-8">
	<p><input type="checkbox" name="simulatedshortmemory" onclick = 'this.form.submit()' #(simulatedshortmemory.checked)#:: checked="checked"#(/simulatedshortmemory.checked)#/>simulate short memory status</label></p>
	<p><input type="checkbox" name="useStandardmemoryStrategy" onclick = 'this.form.submit()' #(useStandardmemoryStrategy.checked)#:: checked="checked"#(/useStandardmemoryStrategy.checked)#/>use Standard Memory Strategy (current: #[memoryStrategy]#)</p>
	</form>
    
    <p><strong>Memory Usage:</strong></p>
    <table border="0" cellpadding="2" cellspacing="1">
      <tr class="TableHeader" valign="bottom">
        <td>&nbsp;<br />Type</td>
        <td>After Startup<br />&nbsp;</td>
        <td>After Initializations<br />before GC</td>
        <td>After Initializations<br />after GC</td>
        <td>Now<br />#(gc)#before <a href="PerformanceMemory_p.html?gc=">GC</a>::after GC#(/gc)#</td>
        <td>Description<br />&nbsp;</td>
      </tr>
      <tr class="TableCellLight">
        <td class="TableCellDark" align="left">Max</td>
        <td align="center" colspan="4">#[memoryMax]# MByte</td>
        <td align="left">maximum memory that the JVM will attempt to use</td>
      </tr>
      <tr class="TableCellLight">
        <td class="TableCellDark" align="left">Available</td>
        <td align="right">#[memoryAvailAfterStartup]# MByte</td>
        <td align="right">#[memoryAvailAfterInitBGC]# MByte</td>
        <td align="right">#[memoryAvailAfterInitAGC]# MByte</td>
        <td align="right">#[memoryAvailNow]# MByte</td>
        <td align="left">total available memory including free for the JVM within maximum</td>
      </tr>
      <tr class="TableCellLight">
        <td class="TableCellDark" align="left">Total</td>
        <td align="right">#[memoryTotalAfterStartup]# KByte</td>
        <td align="right">#[memoryTotalAfterInitBGC]# KByte</td>
        <td align="right">#[memoryTotalAfterInitAGC]# KByte</td>
        <td align="right">#[memoryTotalNow]# MByte</td>
        <td align="left">total memory taken from the OS</td>
      </tr>
      <tr class="TableCellLight">
        <td class="TableCellDark" align="left">Free</td>
        <td align="right">#[memoryFreeAfterStartup]# KByte</td>
        <td align="right">#[memoryFreeAfterInitBGC]# KByte</td>
        <td align="right">#[memoryFreeAfterInitAGC]# KByte</td>
        <td align="right">#[memoryFreeNow]# MByte</td>
        <td align="left">free memory in the JVM within total amount</td>
      </tr>
      <tr class="TableCellLight">
        <td class="TableCellDark" align="left">Used</td>
        <td align="right">#[memoryUsedAfterStartup]# KByte</td>
        <td align="right">#[memoryUsedAfterInitBGC]# KByte</td>
        <td align="right">#[memoryUsedAfterInitAGC]# KByte</td>
        <td align="right">#[memoryUsedNow]# MByte</td>
        <td align="left">used memory in the JVM within total amount</td>
      </tr>
    </table>
    
    <p><strong>Table RAM Index:</strong></p>
    <table border="0" cellpadding="2" cellspacing="1">
      <tr class="TableHeader" valign="bottom">
        <td rowspan="2">Table</td>
        <td rowspan="2">Size</td>
        <td colspan="2">Key</td>
        <td colspan="2">Value</td>
      </tr>
      <tr class="TableHeader" valign="bottom">
        <td>Chunk Size</td>
        <td>Used Memory</td>
        <td>Chunk Size</td>
        <td>Used Memory</td>
      </tr>
      #{EcoList}#
      <tr class="TableCellLight">
        <td align="left" class="TableCellDark">#[tableIndexPath]#</td>
        <td align="right">#[tableSize]#</td>
        <td align="right">#[tableKeyChunkSize]#</td>
        <td align="right">#[tableKeyMem]#</td>
        <td align="right">#[tableValueChunkSize]#</td>
        <td align="right">#[tableValueMem]#</td>
      </tr>
      #{/EcoList}#
      <tr class="TableCellDark">
        <td colspan="9">Total Mem = #[EcoIndexTotalMem]# MB</td>
      </tr>
    </table>
    
    <p><strong>Object Index Caches:</strong></p>
    <table border="0" cellpadding="2" cellspacing="1">
      <tr class="TableHeader" valign="bottom">
        <td>Table</td>
        <td>Size</td>
        <td>Chunk Size</td>
        <td>Needed Memory</td>
        <td>Used Memory</td>
        <!-- <td>Flushes</td> -->
      </tr>
      #{indexcache}#
      <tr class="TableCellLight">
        <td align="left" class="TableCellDark">#[Name]#</td>
        <td align="right">#[Count]#</td>
        <td align="right">#[ChunkSize]#</td>
        <td align="right">#[NeededMem]#</td>
        <td align="right">#[UsedMem]#</td>
      </tr>
      #{/indexcache}#
      <tr class="TableCellDark">
        <td colspan="9">Total Mem: #[indexcacheTotalMem]# MB</td>
      </tr>
    </table>
    
    <p><strong>Object Read Caches:</strong></p>
    <table border="0" cellpadding="2" cellspacing="1">
      <tr class="TableHeader" valign="bottom">
        <td></td>
        <td colspan="9">Read Hit Cache</td>
        <td colspan="8">Read Miss Cache</td>
      </tr>
      <tr class="TableHeader" valign="bottom">
        <td>Table</td>
        <td>Size</td>
        <td>Chunk Size</td>
        <td>Used Memory</td>
        <td>Read Hit</td>
        <td>Read Miss</td>
        <td>Write Unique</td>
        <td>Write Double</td>
        <td>Deletes</td>
        <td>Flushes</td>
        <td>Size</td>
        <td>Chunk Size</td>
        <td>Used Memory</td>
        <td>Read Hit</td>
        <td>Read Miss</td>
        <td>Write Unique</td>
        <td>Write Double</td>
        <td>Deletes</td>
        <!-- <td>Flushes</td> -->
      </tr>
      #{ObjectList}#
      <tr class="TableCellLight">
        <td align="left" class="TableCellDark">#[objectCachePath]#</td>
        <td align="right">#[objectHitCacheCount]#</td>
        <td align="right">#[objectHitChunkSize]#</td>
        <td align="right">#[objectHitCacheMem]#</td>
        <td align="right">#[objectHitCacheReadHit]#</td>
        <td align="right">#[objectHitCacheReadMiss]#</td>
        <td align="right">#[objectHitCacheWriteUnique]#</td>
        <td align="right">#[objectHitCacheWriteDouble]#</td>
        <td align="right">#[objectHitCacheDeletes]#</td>
        <td align="right">#[objectHitCacheFlushes]#</td>
        <td align="right">#[objectMissCacheCount]#</td>
        <td align="right">#[objectMissChunkSize]#</td>
        <td align="right">#[objectMissCacheMem]#</td>
        <td align="right">#[objectMissCacheReadHit]#</td>
        <td align="right">#[objectMissCacheReadMiss]#</td>
        <td align="right">#[objectMissCacheWriteUnique]#</td>
        <td align="right">#[objectMissCacheWriteDouble]#</td>
        <td align="right">#[objectMissCacheDeletes]#</td>
        <!-- <td align="right">#[objectMissCacheFlushes]#</td> -->
      </tr>
      #{/ObjectList}#
      <tr class="TableCellDark">
        <td colspan="19">Total Mem: #[objectHitCacheTotalMem]# MB (hit), #[objectMissCacheTotalMem]# MB (miss); Stop Grow when less than #[objectCacheStopGrow]# MB available left; Start Shrink when less than #[objectCacheStartShrink]# MB availabe left</td>
      </tr>
    </table>
    
    <!-- other cache sizes -->
    <p><strong>Other Caching Structures:</strong></p>
    <table border="0" cellpadding="2" cellspacing="1">
      <tr class="TableHeader" valign="bottom">
        <td>Type</td>
        <td>Size</td>
        <td>Hit</td>
        <td>Miss</td>
        <td>Insert</td>
        <td>Delete</td>
      </tr>
      <tr class="TableCellLight">
        <td>Solr-Cache/Hit</td>
        <td>#[solrcacheHit.size]#</td>
        <td>#[solrcacheHit.Hit]#</td>
        <td>#[solrcacheHit.Miss]#</td>
        <td>#[solrcacheHit.Insert]#</td>
        <td>(ARC)</td>
      </tr>
      <tr class="TableCellLight">
        <td>Solr-Cache/Miss</td>
        <td>#[solrcacheMiss.size]#</td>
        <td>#[solrcacheMiss.Hit]#</td>
        <td>#[solrcacheMiss.Miss]#</td>
        <td>#[solrcacheMiss.Insert]#</td>
        <td>(ARC)</td>
      </tr>
      <tr class="TableCellLight">
        <td>Solr-Cache/Document</td>
        <td>#[solrcacheDocument.size]#</td>
        <td>#[solrcacheDocument.Hit]#</td>
        <td>#[solrcacheDocument.Miss]#</td>
        <td>#[solrcacheDocument.Insert]#</td>
        <td>(ARC)</td>
      </tr>
      <tr class="TableCellLight">
        <td>DNSCache/Hit</td>
        <td>#[namecacheHit.size]#</td>
        <td>#[namecacheHit.Hit]#</td>
        <td>#[namecacheHit.Miss]#</td>
        <td>#[namecacheHit.Insert]#</td>
        <td>(ARC)</td>
      </tr>
      <tr class="TableCellLight">
        <td>DNSCache/Miss</td>
        <td>#[namecacheMiss.size]#</td>
        <td>#[namecacheMiss.Hit]#</td>
        <td>#[namecacheMiss.Miss]#</td>
        <td>#[namecacheMiss.Insert]#</td>
        <td>(ARC)</td>
      </tr>
      <tr class="TableCellDark">
        <td>DNSNoCache</td>
        <td>#[namecache.noCache]#</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      <tr class="TableCellLight">
        <td>HashBlacklistedCache</td>
        <td>#[blacklistcache.size]#</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      <tr class="TableCellLight">
        <td>Search Event Cache</td>
        <td>#[searchevent.size]#</td>
        <td>#[searchevent.hit]#</td>
        <td>#[searchevent.miss]#</td>
        <td>#[searchevent.insert]#</td>
        <td>#[searchevent.delete]#</td>
      </tr>
    </table>
    
    #%env/templates/footer.template%#
  </body>
</html>