[JAVA] Stellen Sie jstat-Protokolle zur sofortigen Anzeige in Excel zur Verfügung

Als ich eine speicherbezogene Umfrage durchführte, wurde mir gesagt, dass ich Excel wirklich für die Aggregation verwenden wollte, also habe ich es vorerst versucht.

Das übliche jstat-Protokoll wird wie folgt angezeigt.

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
512.0  512.0   0.0    0.0   124928.0  6358.9   83968.0    42417.6   65064.0 58754.0 9256.0 7392.2  15501   94.212 15488 1702.193 1796.405

Wenn Datum und Komma getrennt werden können, scheint es vorerst so zu sein, dass es in Excel gelesen werden kann, also habe ich versucht, sed und awk zu verwenden. Da sich die ausgeführte Anwendung in einer Windows-Umgebung befindet, installieren Sie sie im Voraus, damit sed und awk ausgeführt werden können. Als ich es auf einem Mac ausprobierte, wurde ich wütend, wenn es keine Awk-Zeit gab, also installierte ich Gawk.

awk: calling undefined function strftime

Also habe ich verschiedene Dinge ausprobiert und es wurde wie folgt.

 jstat -gc <process id> 10s | gawk '{print strftime("%Y/%m/%d-%H:%M:%S"), $0; fflush();}' | sed -e 's/^  *//g; s/  */,/g' >> jstat.csv

Nun wird die Ausgabe wie folgt sein.

2018/04/28-23:28:46,S0C,S1C,S0U,S1U,EC,EU,OC,OU,MC,MU,CCSC,CCSU,YGC,YGCT,FGC,FGCT,GCT,
2018/04/28-23:28:46,512.0,512.0,0.0,0.0,124928.0,4831.7,83968.0,42283.1,65064.0,58754.0,9256.0,7392.2,15507,94.412,15494,1703.366,1797.778
2018/04/28-23:28:47,512.0,512.0,0.0,0.0,124928.0,4831.7,83968.0,42283.1,65064.0,58754.0,9256.0,7392.2,15507,94.412,15494,1703.366,1797.778

Das Datum wird ebenfalls in die Kopfzeile aufgenommen, dies ist jedoch ein Kompromiss.

Recommended Posts

Stellen Sie jstat-Protokolle zur sofortigen Anzeige in Excel zur Verfügung
Machen Sie einen Ausschnitt für Thymeleaf in VS Code