Changes between Version 22 and Version 23 of RTSsummaryEvents
- Timestamp:
- 01/07/12 16:01:37 (17 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RTSsummaryEvents
v22 v23 16 16 }}} 17 17 18 We'd need an event for each memory allocation to calculate the total allocated heap. 18 We'd need an event, emitted at each GC, with the allocation since the previous GC. 19 (We really don't want an event for every memory allocation, that would be impractical and very slow.) 19 20 20 21 {{{ … … 22 23 }}} 23 24 24 An event with a summary of all copying done, probablyafter the end of each GC.25 An event with a summary of all copying done, emitted after the end of each GC. 25 26 26 27 {{{ … … 28 29 }}} 29 30 30 Either aseparate event for that, perhaps emitted only after major GC when we know how much memory31 A separate event for that, perhaps emitted only after major GC when we know how much memory 31 32 is really used by the program. The docs explain the "n samples" above saying "only checked during major garbage collections". 32 Or we can try to calculate it (how often to sample?) from all events. in particular memory deallocation events and GC memory freeing events.33 33 34 34 {{{ … … 42 42 }}} 43 43 44 Can probably be calculated from allocation and deallocation. 44 The "total memory in use" is stored in the mblocks_allocated global var. 45 Check how often it changes and emit accordingly. 45 46 46 47 {{{ … … 48 49 }}} 49 50 50 No idea what new events we need to calculate fragmentation. Ask JaffaCake what the following formula from the RTS -s code means:51 Fragmentation is calculated in the RTS -s code as follows: 51 52 52 53 {{{ … … 54 55 }}} 55 56 56 in particular what is the difference between peak_mblocks_allocated and hw_alloc_blocks. 57 so it's a difference between total memory allocated from the OS (peak_mblocks_allocated), 58 and total memory in use by the GC and other parts of the RTS (hw_alloc_blocks). 59 Presumably, all the events needed so far are of the latter kind, so the former may need a new event. 57 60 58 61 {{{ … … 62 65 }}} 63 66 64 Ask JaffaCake if RequestParGC is enough to distinguish between seq and par GC and why some StartGC 65 follow neither RequestParGC nor RequestSeqGC (on the same capability, at least, assuming I tested it right). 66 67 We'd need to split the current GC events into generations and into seq/par 68 (if RequestParGC is not enough to tell seq/par). Note that we don't want 67 The current GC events (in particular RequestParGC) seem to be enough to distinguish 68 between seq and par GC. We'd need to split the current GC events into generations, though, 69 to report for every generation separately. Note that we don't want 69 70 to report the CPU time, only the elapsed time, and that's fine. 70 71
![(please configure the [header_logo] section in trac.ini)](/ThreadScope/chrome/site/your_project_logo.png)