Gareth Rees
df41d66de5
Don't represent capacities internally in kilobytes, convert once on initialization.
...
In the monitor, start average mortality time series with the initial predicted value.
Copied from Perforce
Change: 194565
2018-07-10 13:10:00 +01:00
Gareth Rees
14b0146a31
Pass keyword arguments to axes.plot.
...
Plot condemned gens and size as points rather than lines.
Don't accumulate reference size if no segment information.
Keep bytes on the left axis and fraction on the right if possible.
Plot time series even with a single point (now makes sense with marker= argument).
Copied from Perforce
Change: 194549
2018-07-10 08:32:25 +01:00
Gareth Rees
48c5579969
Add time series for total condemned memory during a trace.
...
Copied from Perforce
Change: 194544
2018-07-09 17:03:53 +01:00
Gareth Rees
91efa65199
Add time series for fraction of generations condemned in chain.
...
Copied from Perforce
Change: 194541
2018-07-09 16:56:16 +01:00
Gareth Rees
23cb9aa226
Add time series for per-trace mortality.
...
Copied from Perforce
Change: 194538
2018-07-09 16:29:37 +01:00
Gareth Rees
34c343b96e
Add time series for total allocation by the client program.
...
Copied from Perforce
Change: 194537
2018-07-09 16:21:20 +01:00
Gareth Rees
8fb0e4dcc9
Label the top generation and the generations in the arena's default generation chain, for the benefit of the telemetry monitor.
...
Copied from Perforce
Change: 194536
2018-07-09 16:11:17 +01:00
Gareth Rees
73229fd23a
Keep checkboxes sorted by name.
...
Copied from Perforce
Change: 194355
2018-07-03 09:35:12 +01:00
Gareth Rees
3641c31e6b
Add time series for mortality in a generation, and size of segments referencing each generation.
...
Copied from Perforce
Change: 194348
2018-07-02 15:40:42 +01:00
Gareth Rees
22c806705d
Click on a line to find out what it is.
...
Copied from Perforce
Change: 194308
2018-06-29 12:53:00 +01:00
Gareth Rees
249ff09f2a
Synchronously decode as much of the telemetry stream as possible before launching the gui, so that errors can be emitted before creating the window.
...
Copied from Perforce
Change: 194303
2018-06-29 10:07:21 +01:00
Gareth Rees
07dfb53f25
Add mpseventpy as a target to the xcode project.
...
Copied from Perforce
Change: 194296
2018-06-28 17:20:59 +01:00
Gareth Rees
5812cc3c8b
Try to avoid "eventpy.c:164:3: error: comparison of unsigned expression < 0 is always false" from gcc 4.8.4 (the version on the travis buildbots). see https://travis-ci.org/ravenbrook/mps/jobs/397813493
...
Copied from Perforce
Change: 194282
2018-06-28 16:07:56 +01:00
Gareth Rees
d33c34926a
Not safe to call segsetsummary from gcsegfinish.
...
Copied from Perforce
Change: 194277
2018-06-28 14:34:58 +01:00
Gareth Rees
fc6ae0978f
New event segsetsummary allows the monitor to track the sizes of segments referencing particular zones.
...
Copied from Perforce
Change: 194259
2018-06-28 13:14:12 +01:00
Gareth Rees
e28b4d871a
Include mpseventpy in "make install".
...
Copied from Perforce
Change: 194258
2018-06-28 13:13:06 +01:00
Gareth Rees
78dc964f73
Try to open the telemetry file before creating the gui and thread, so that the error appears immediately.
...
Copied from Perforce
Change: 194234
2018-06-27 11:36:41 +01:00
Gareth Rees
d2b6d74ee8
Hide axes that don't have any lines.
...
Copied from Perforce
Change: 194233
2018-06-27 11:33:18 +01:00
Gareth Rees
a115d05316
Need to check the stop signal if there were no batches.
...
Copied from Perforce
Change: 194228
2018-06-27 10:32:34 +01:00
Gareth Rees
c7e6ce8c6b
Stop decoding messages when application exits.
...
Copied from Perforce
Change: 194223
2018-06-27 10:28:21 +01:00
Gareth Rees
1a5179863f
Fix alignment of event structures.
...
Copied from Perforce
Change: 194220
2018-06-27 10:11:50 +01:00
Gareth Rees
a725395bf4
Decode the events in another thread to avoid the need for non-blocking i/o and so make the code portable to windows.
...
Copied from Perforce
Change: 194215
2018-06-27 09:10:30 +01:00
Gareth Rees
459a02d625
Better approach to averaging the cpu usage.
...
Copied from Perforce
Change: 194210
2018-06-27 08:51:17 +01:00
Gareth Rees
e323bd2e15
New events arenapollbegin and arenapollend.
...
Measure fraction of CPU time in polling.
Represent the units of each TimeSeries.
Draw graphs for up to two different units using Axes.twinx.
Copied from Perforce
Change: 194204
2018-06-26 16:21:48 +01:00
Gareth Rees
3ab13b0f27
Refactor the code so that the sorting and time interpolation takes place in the event decoder.
...
Record the problem with clocks wrapping round on 32-bit systems.
Tooltips for time series.
Read and ignore unknown event codes.
Copied from Perforce
Change: 194199
2018-06-26 14:12:37 +01:00
Gareth Rees
44c07ace41
Setfixedwidth responds better when image resized.
...
Copied from Perforce
Change: 194178
2018-06-26 11:07:26 +01:00
Gareth Rees
026af76fab
Pause/unpause during live animation.
...
Zooming/panning automatically pauses.
Copied from Perforce
Change: 194177
2018-06-26 11:05:43 +01:00
Gareth Rees
6e27d4f95e
Make the list of line checkboxes scrollable.
...
Copied from Perforce
Change: 194172
2018-06-26 09:59:44 +01:00
Gareth Rees
f62ff53c90
Improved name.
...
Copied from Perforce
Change: 194154
2018-06-25 15:54:57 +01:00
Gareth Rees
6d6d5ecaaf
Record the tsc wrap-around non-issue.
...
Copied from Perforce
Change: 194151
2018-06-25 15:49:23 +01:00
Gareth Rees
25ee1ea3ae
Linearly interpolate clocks for each batch once.
...
Copied from Perforce
Change: 194150
2018-06-25 15:43:49 +01:00
Gareth Rees
fc897d90e3
Command+w shortcut for closing the application.
...
Copied from Perforce
Change: 194145
2018-06-25 15:00:26 +01:00
Gareth Rees
45f5372a1e
Integrate with qt5.
...
Checkboxes control display of time series.
Copied from Perforce
Change: 194140
2018-06-25 14:12:22 +01:00
Gareth Rees
5eb78126a3
Live monitoring via a named pipe.
...
Copied from Perforce
Change: 194123
2018-06-23 19:24:37 +01:00
Gareth Rees
9055658937
Endianness support allows you to (theoretically) run the monitor on a different platform.
...
Copied from Perforce
Change: 194118
2018-06-23 16:01:26 +01:00
Gareth Rees
844d35d9ce
Documentation for event header fields.
...
Copied from Perforce
Change: 194113
2018-06-23 15:51:26 +01:00
Gareth Rees
1c7107fd8c
Handle deletion of arenas and pools (they often get recreated at the same addresses so this is vital).
...
Sort the events in batches so that, for example, we get PoolFinish before ArenaDestroy.
Emit ArenaDestroy event after finishing all its pools.
Add arena parameter to PoolFinish event.
Restore top-down logging of events (no need to order them the telemetry output, since the monitor sorts them).
Add comments for all the events used by the monitor.
Include the arena's name in the pool's name when there are multiple arenas.
Copied from Perforce
Change: 194112
2018-06-23 15:37:11 +01:00
Gareth Rees
efa0382487
Preparation for animation.
...
Copied from Perforce
Change: 194101
2018-06-22 17:28:10 +01:00
Gareth Rees
99c38a4f67
Check version.
...
Convert cycle counters to seconds by piecewise linear interpolation.
Copied from Perforce
Change: 194096
2018-06-22 15:59:35 +01:00
Gareth Rees
65d5f185f8
Event alignment doesn't need to be mps_pf_align (that's wasteful on windows).
...
Copied from Perforce
Change: 194091
2018-06-22 14:09:56 +01:00
Gareth Rees
32a1c7c44f
Label the time series in the monitor.
...
In telemetry output, distinguish between labelling of (client) addresses and (MPS-internal) pointers, to avoid transgressing the distinction.
Add arena grain size, class, and serial number to ArenaCreate* events.
Add pool class and serial number to PoolInit event.
Copied from Perforce
Change: 194086
2018-06-22 11:05:46 +01:00
Gareth Rees
6f7e356142
Rename monitor.py to monitor for consistency with other python applications.
...
Copied from Perforce
Change: 194069
2018-06-21 20:48:22 +01:00
Gareth Rees
7500c714e7
Avoid "dereferencing type-punned pointer will break strict-aliasing rules" from gcc 4.8.
...
Copied from Perforce
Change: 194061
2018-06-21 17:30:51 +01:00
Gareth Rees
c11e1b6c3b
First draft of mps model, time series, and plot.
...
Copied from Perforce
Change: 194056
2018-06-21 14:19:37 +01:00
Gareth Rees
3dc5a92860
Emit events in time order (per kind for now) in order to support telemetry consumers that run in real time.
...
Copied from Perforce
Change: 194051
2018-06-21 14:00:05 +01:00
Gareth Rees
4c27186bf5
Arenafree event needs to include the pool so that telemetry-consuming applications can update pool statistics without having to remember the addresses of all the allocations.
...
Copied from Perforce
Change: 194050
2018-06-21 13:57:42 +01:00
Gareth Rees
dc3c79094c
Generate events as namedtuples.
...
Copied from Perforce
Change: 194045
2018-06-21 09:52:03 +01:00
Gareth Rees
f4f795cb37
Better handling of intern events.
...
Copied from Perforce
Change: 194040
2018-06-21 09:16:06 +01:00
Gareth Rees
d365ccbd08
Since we changed the major version number, we might as well fix the type of the ok parameter of the commitlimitset event.
...
Copied from Perforce
Change: 194033
2018-06-20 16:09:57 +01:00
Gareth Rees
2e85d9a850
Don't store booleans as bit-fields in event structures: this makes it impossible to automatically unpack them using python's struct module. (the only event where this actually saved any space was poolinitmvff!)
...
Update event format to 2.0.0 since telemetry format changed.
New macro EVENT_ANY_FIELDS allows consumers to determine the layout of the event header.
mpseventpy now analyzes the event layout (including padding bytes) and emits struct format specifications.
New program tool/monitor.py reads and unpacks a stream of telemetry events.
Copied from Perforce
Change: 194026
2018-06-20 15:51:38 +01:00