import javax.management.*; import javax.management.openmbean.CompositeData; import com.sun.management.GcInfo; import com.sun.management.GarbageCollectionNotificationInfo; sclass GCPause { long start, duration; S name, cause, action; toString { ret "GCPause duration=" + duration + " ms, start=" + start + " (VM time). " + renderStructs(+name, +cause, +action); } } static new Flag collectGCPauses_started; static L<GCPause> collectGCPauses_list; static void collectGCPauses() { collectGCPauses(1000); } static void collectGCPauses(int bufferSize) { if (!collectGCPauses_started.raise()) ret; collectGCPauses_list = synchroList(LatestList(bufferSize)); onGCNotification(voidfunc(GarbageCollectionNotificationInfo info) { GcInfo gcInfo = info.getGcInfo(); GCPause pause = nu(GCPause, start := gcInfo.getStartTime(), duration := gcInfo.getDuration(), name := info.getGcName(), cause := info.getGcCause(), action := info.getGcAction()); collectGCPauses_list.add(pause); }); }
Began life as a copy of #1013400
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1013407 |
Snippet name: | collectGCPauses |
Eternal ID of this version: | #1013407/3 |
Text MD5: | 5591b0162d9447c54f6a26eda211d830 |
Author: | stefan |
Category: | javax / gc / monitoring |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2018-01-05 02:25:56 |
Source code size: | 1080 bytes / 36 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 457 / 466 |
Version history: | 2 change(s) |
Referenced in: | #1006654 - Standard functions list 2 (LIVE, continuation of #761) |