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
a40f330096
sysprof: fix check for development build
2023-08-07 14:50:47 -07:00
954e06ca14
sysprof: setup document subtitle for window
2023-08-07 14:47:18 -07:00
7ec7cb9b84
libsysprof: add a subtitle property
...
To make things easier to bind from the window.
2023-08-07 14:47:13 -07:00
2b57315bae
sysprof: show loading information in window title
2023-08-07 14:36:02 -07:00
65515cfe64
sysprof: add progressbar while loading
...
And try to keep some of the window disabled during the loading process.
2023-08-07 14:32:49 -07:00
170122abc8
sysprof: show window while document is loading
...
That way the user knows something is actually going on.
2023-08-07 14:07:15 -07:00
4b89afd718
sysprof: ensure type for cpu section
2023-08-07 14:06:59 -07:00
08927ef4f7
sysprof: hoist capture open dialog into sysprof-window.c
...
This allows it to be reused from the window without having to have pages
in the greeter.
2023-08-07 13:48:54 -07:00
79fe14a587
sysprof: open files
...
I wanted to have the ability to ignore bundled symbols and provide a custom
kallsyms to help with some perculiar situations, but we might need to
defer that to a preferences window.
2023-08-07 13:39:14 -07:00
c38c1fb4b0
libsysprof: allow specifying phase for subprocess output
...
This is helpful in that you can specify which phase of the capture the
process should be run so that it's less likely to show up on profiles.
2023-08-07 12:54:46 -07:00
4250abf81e
libsysprof: setup perf streams in prepare
...
This starts the perf streams from prepare instead of from record so that
we can do the linux instrument work in prepare. The samples are dropped
until our start-time is set.
Doing it this way removes sysprof-cli and sysprofd greatly from the
overhead in the callgraph which is useful so that the user gets to see
what they really care about.
It has the added benefit that we're less likely to see the pkla processes
showing up from authorizing our D-Bus connection for creating per streams.
2023-08-07 12:14:32 -07:00
841291bae7
window: remove unused preferences menu item
2023-08-06 18:00:14 -07:00