[JAVA] Rendre les journaux jstat disponibles pour une visualisation immédiate dans Excel

Lorsque je faisais une enquête sur la mémoire, on m'a dit que je voulais vraiment utiliser Excel pour l'agrégation, alors je l'ai essayé pour le moment.

Le journal jstat habituel apparaît comme suit.

 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

Pour le moment, si la date et la virgule peuvent être séparées, il semble qu'elle puisse être lue dans Excel telle quelle, j'ai donc essayé d'utiliser sed et awk. Puisque l'application en cours d'exécution se trouve dans un environnement Windows, installez-la à l'avance afin que sed et awk puissent être exécutés. Quand je l'ai essayé sur Mac, je me suis mis en colère s'il n'y avait pas de strftime awk, alors j'ai installé gawk.

awk: calling undefined function strftime

Alors, j'ai essayé diverses choses et c'est devenu comme suit.

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

Maintenant, la sortie sera la suivante.

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

La date sera également incluse dans l'en-tête, mais c'est un compromis.

Recommended Posts

Rendre les journaux jstat disponibles pour une visualisation immédiate dans Excel
Créer un extrait pour Thymeleaf dans VS Code