All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.dagere.kopeme.datacollection.RAMUsageCollector Maven / Gradle / Ivy

There is a newer version: 1.4.1
Show newest version
package de.dagere.kopeme.datacollection;

/**
 * Diese Klasse speichert Daten über die Arbeitsspeicherbenutzung. Allerdings wird hier nicht der durchschnittliche Arbeitsspeicherverbrauch oder ein Verlauf gespeichert, sondern
 * nur der Arbeitsspeicherverbrauch, der während des Methodenaufrufs hinzugekommen ist. Ein Messen des gesamten Verlaufs würde keine vergleichbaren Zahlen erzeugen, sondern
 * Verläufe, die dann schwerer vergleichbar wären. Weiterhin ist das Vergleichen des Arbeitsspeicherverbrauches, wenn zwischendurch der GarbageCollector aufgerufen wurde, wenig
 * sinnvoll, da der eigentliche Arbeitsspeicherverbrauch einer Methode nicht mehr ermittelt werden kann.
 * 
 * @author dagere
 *
 */
public final class RAMUsageCollector extends DataCollector {

   private long usedStart, value;

   @Override
   public int getPriority() {
      return MIDDLE_COLLECTOR_PRIORITY; // Middle-High Priority, as the RAMUsageCollector should not
      // measure the things other DataCollectors create
   }

   @Override
   public void startCollection() {
      System.gc();
      usedStart = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();

   }

   @Override
   public void stopCollection() {
      long nowVal = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
      value = nowVal - usedStart;
   }

   @Override
   public long getValue() {
      return value;
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy