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.