Uses 1113K of libraries. Click here for Pure Java version (7744L/39K).
1 | !7 |
2 | |
3 | // Note: Deadlock solving happens in OS main too, so it will not be |
4 | // lost if GC is turned off here. |
5 | |
6 | cmodule2 GarbageCollection {
|
7 | bool on = true; |
8 | transient IF0<Bool> cond = () -> on; |
9 | |
10 | start {
|
11 | doEvery(1.0, 60.0, r updateMe); |
12 | } |
13 | |
14 | visualize {
|
15 | JLabel lblTime = jCenteredLabel(" ");
|
16 | awtEvery(lblTime, 1000, r {
|
17 | long last = lastRegularGC(); |
18 | setText(lblTime, last == 0 ? "No GC yet" |
19 | : "Time since last GC: " + iround(elapsedSeconds_timestamp(last)) + " s"); |
20 | }); |
21 | ret vstackWithSpacing( |
22 | toolTip("On = Perform a Java garbage collection every minute", centerCheckBox(dm_fieldCheckBox("GC On", 'on))),
|
23 | lblTime); |
24 | } |
25 | |
26 | void update {
|
27 | //print("GC: " + on);
|
28 | if (dm_osHasField gc_subcondition()) {
|
29 | // new method - keeps weak hash map cleaning |
30 | if (dm_getOS gc_subcondition() != cond) {
|
31 | dm_setOS gc_subcondition(cond); |
32 | infoBoxAndProgramLog((on ? "Enabling" : "Disabling") + " Garbage Collection"); |
33 | } |
34 | updateModuleName(); |
35 | } else {
|
36 | print("Legacy method");
|
37 | // legacy method |
38 | bool has = hasRegularGC(); |
39 | if (has != on) {
|
40 | infoBoxAndProgramLog((on ? "Enabling" : "Disabling") + " Garbage Collection"); |
41 | if (on) regularGC_firstDelay(1000); else noRegularGC(); |
42 | } |
43 | } |
44 | } |
45 | |
46 | void updateModuleName {
|
47 | setModuleName("Garbage collector is " + (on ? "On" : "Off"));
|
48 | } |
49 | } |
download show line numbers debug dex old transpilations
Travelled to 9 computer(s): bhatertpkbcr, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1019940 |
| Snippet name: | Garbage Collector [GC] On/Off |
| Eternal ID of this version: | #1019940/24 |
| Text MD5: | bbede49dc736c3338373b618f754be16 |
| Transpilation MD5: | 468c80601bcf774dc125f8923451bc63 |
| Author: | stefan |
| Category: | javax / stefan's os |
| Type: | JavaX source code (Dynamic Module) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2021-06-27 00:38:56 |
| Source code size: | 1461 bytes / 49 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 930 / 67255 |
| Version history: | 23 change(s) |
| Referenced in: | [show references] |