Commit Graph

2687 Commits

Author SHA1 Message Date
fa49127c85 sysprof: don't include edge items when filtering 2023-08-21 15:43:49 -07:00
71a2404d6e sysprof: include boudaries by default
This will help with graphs where we want to show things which will overlap
the edges.
2023-08-21 15:40:51 -07:00
3a5aa1e887 sysprof-cli: add --scheduler option 2023-08-21 15:25:35 -07:00
bd77a1d2ef sysprof-agent: add --scheduler option 2023-08-21 15:25:28 -07:00
233e7a72f1 sysprof: add UI to enable scheduler details 2023-08-21 15:22:25 -07:00
82020e86be libsysprof: add instrument to record scheduler switching
This is to allow us to look at what processes were running when as a way
to get a high-level overview of usage.
2023-08-21 15:05:48 -07:00
bf73d142dc libsysprof: sort frames with timsort
These are largely pre-sorted, but not fully when you have merged data. This
uses timsort to speed that up a bit.

In particular, the comparison of various sorts break down to (for a
~32,000,000 record capture.

  g_array_sort_with_data() => 3.9 seconds
  qsort_r() = > 3.7 seconds
  gtk_tim_sort() => .79 seconds
2023-08-18 16:46:28 -07:00
bdf9a55969 libsysprof: be defensive against null traceable 2023-08-17 13:36:39 -07:00
9f00d904b0 Revert "libsysprof: add rwlock for symbol cache"
This reverts commit d1b4308af7.
2023-08-16 15:43:50 -07:00
48dc402c3b Revert "libsysprof: parallelize capture symbolizing"
This reverts commit a7a0c782d1.
2023-08-16 15:43:49 -07:00
3b97252a8e Revert "libsysprof: be defensive against null traceable"
This reverts commit c75022c257.
2023-08-16 15:43:46 -07:00
c75022c257 libsysprof: be defensive against null traceable 2023-08-16 14:06:40 -07:00
a7a0c782d1 libsysprof: parallelize capture symbolizing 2023-08-15 22:17:34 -07:00
d1b4308af7 libsysprof: add rwlock for symbol cache
This is necessary so we can start looking at threading symbolizers.
2023-08-15 19:21:31 -07:00
10807758aa sysprof: use sampled model for marks scrubber
This can save a tramendous number of items to look at in the scrubber.
2023-08-15 19:08:15 -07:00
9792759ba9 sysprof: cleanup n-items handling 2023-08-15 17:40:49 -07:00
efee8bda79 sysprof: use sampled model to limit input to xy series 2023-08-15 17:36:25 -07:00
08664bdcda sysprof: limit number of samples sent for normalization 2023-08-15 17:30:37 -07:00
6eb6514cd4 sysprof: add a new sampled model
The goal here is to allow us to look at way fewer items in a model rather
than every item. For example, we don't want to draw 32,000,000 stack
traces in the overview chart.
2023-08-15 17:30:13 -07:00
3598755963 libsysprof: flush incoming events when finalizing ring source
This just helps ensure we've not lost anything during the shutdown of the
profiler here.
2023-08-15 15:38:02 -07:00
c45aba997d libsysprof-capture: sleep and try again to get an event
Unless we've failed before, then just bail immediately so that applications
which loose their controller keep running with minimal overhead.
2023-08-15 15:37:24 -07:00
b96bf5c969 libsysprof: increase priority of mapped ring buffer source
We want to reduce the chances we've lost anything in these, which is
pretty important for memory tracing.
2023-08-15 14:41:23 -07:00
a9cf64903c libsysprof-capture: increase ring buffer size
Make sure there is less chance of losing information in these buffers.
2023-08-15 14:40:31 -07:00
f00773702a preload: always track realloc changes
We might go to zero, or we might change our size. Either way we want to
have accurate information about that size change.
2023-08-15 14:29:01 -07:00
9e87206c37 sysprof: set window title to include document
That way we can differentiate multiple windows.
2023-08-15 13:44:46 -07:00
c576df92db libsysprof: allow specifying type in index model 2023-08-14 21:48:51 -07:00
fad5f0381b sysprof: filter memory allocations by selected time 2023-08-14 16:49:47 -07:00
f1f71e0135 sysprof: add leak detection
This was one of the last pieces missing for 45.
2023-08-14 16:44:16 -07:00
a1499a62ac sysprof: update memory allocation icon 2023-08-14 16:43:59 -07:00
4967d5faeb libsysprof: add test for leak detection 2023-08-14 16:02:46 -07:00
f7a32750e2 libsysprof: add leak detector helper
This is a leak detector by finding allocations which do not have a
corresponding free record.
2023-08-14 16:02:46 -07:00
a27eee8087 libsysprof: give internal access to allocations bitset 2023-08-14 16:02:46 -07:00
45f08e07c9 libsysprof: externalize access to frames array
This can be useful to optimize some walking paths in other layers.
2023-08-14 16:02:46 -07:00
751337a47a sysprof: make zoom in/out sticky to left edge
Fixes #37
2023-08-14 11:27:40 -07:00
a141d9a194 sysprof-cli: bump default buffer size to 8mb
The goal here is just to reduce the number of file system transactions during
the recording process.
2023-08-14 10:26:24 -07:00
336d4a6e91 cli: add option to specify buffer size in pages 2023-08-14 10:22:33 -07:00
6e72cb3497 ui: Mark two strings translatable
- Logs
- Stack Traces
2023-08-13 02:22:08 +03:00
4ad44609d0 build: remove optional support for libunwind
backtrace() was only ever used for bringup, not actually meant to be used
in any production capacity.
2023-08-11 12:22:57 -07:00
912f8e8852 sysprof-cli: avoid erroring on non-zero exit 2023-08-09 22:49:24 -07:00
fd705063bf libsysprof: defend against empty symbol lists 2023-08-08 14:15:51 -07:00
3a875aaf26 sysprof: add missing CPU usage recording to template 2023-08-08 12:16:08 -07:00
a1211ec298 libsysprof: add some memory counters
We will probably add a bunch more here too.
2023-08-07 18:02:05 -07:00
fba4642451 build: fix static dep race in enums 2023-08-07 15:41:43 -07:00
8d2fe823a3 window: don't let window disposal cause app exit with greeter
If the greeter was shown and the window got closed, the whole app could
exit without this.
2023-08-07 15:27:49 -07:00
4aef0ffe12 sysprof: add greeter menu back
We don't have a way to show this until the main window is available
currently, which can be problematic if you need to get the help or
about info for troubleshooting.
2023-08-07 15:22:01 -07:00
13a1f97cad sysprof: disable frame-timings from compositor by default 2023-08-07 15:12:58 -07:00
5f60ae8f94 sysprof: fix window loading after recording 2023-08-07 15:12:16 -07:00
2e2c53ad6b sysprof: add --version option 2023-08-07 15:04:57 -07:00
b6692e8faa build: prepare for beta 2023-08-07 15:04:48 -07:00
6fbf7250b1 build: fix warning from release build 2023-08-07 14:52:37 -07:00