26 Stimmen

Messung der Java-Ausführungszeit, des Speicherverbrauchs und der CPU-Last für ein Codesegment

Für ein bestimmtes Segment des Java-Codes würde ich gerne messen:

  • Ausführungszeit (höchstwahrscheinlich Thread-Ausführungszeit )
  • Speicherverbrauch
  • CPU-Belastung (speziell auf das Codesegment zurückzuführen)

Ich bin ein relativer Java-Neuling und weiß nicht, wie dies erreicht werden kann. Ich wurde verwiesen auf JMX Ich bin mir jedoch nicht sicher, wie das verwendet werden könnte, und JMX sieht für das, was ich vorhabe, ein wenig "schwerfällig" aus.

Idealerweise hätte ich gerne eine Messklasse, der man sagen kann, was man messen möchte, mit der Möglichkeit, eine start() Methode vor einem Codesegment und einem stop() Methode nach. Relevante Metriken würden in einer von mir angegebenen Datei protokolliert.

Zum Beispiel:

import com.example.metricLogger;

metricLogger logger = new metricLogger();

logger.setLogPath(pathToLogFile);
logger.monitor(executionTime);
logger.monitor(memoryUsage);
logger.monitor(cpuLoad);

logger.start();

/* Code to be measured */

logger.stop();

Gibt es eine standardmäßige/übliche/konventionelle Möglichkeit, dies in Java zu erreichen?

Solche Messungen sind für einmalige Leistungsvergleiche gedacht, und ich bin nicht auf der Suche nach langfristigen Überwachungsprozessen in der Produktion.

Ich bin froh, wenn ich auf Tutorials oder externe Beispiele verwiesen werde und erwarte hier keine vollständige Antwort. Wenn jedoch etwas so Einfaches wie das oben Genannte möglich ist, würde ein realistisches Beispiel sehr gut ankommen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X