Commit Graph

12 Commits

Author SHA1 Message Date
d525f065f4 libsysprof-ui: add API to reload pages
This can be useful when the page is interactive and needs to reload.
2020-02-18 19:17:38 -08:00
33c81a3a9c memprof: add memory profiling using LD_PRELOAD
This brings over some of the techniques from the old memprof design.
Sysprof and memprof shared a lot of code, so it is pretty natural to
bring back the same callgraph view based on memory allocations.

This reuses the StackStash just like it did in memprof. While it
would be nice to reuse some existing tools out there, the fit of
memprof with sysprof is so naturally aligned, it's not really a
big deal to bring back the LD_PRELOAD. The value really comes
from seeing all this stuff together instead of multiple apps.

There are plenty of things we can implement on top of this that
we are not doing yet such as temporary allocations, cross-thread
frees, graphing the heap, and graphing differences between the
heap at to points in time. I'd like all of these things, given
enough time to make them useful.

This is still a bit slow though due to the global lock we take
to access the writer. To improve the speed here we need to get
rid of that lock and head towards a design that allows a thread
to request a new writer from Sysprof and save it in TLS (to be
destroyed when the thread exits).
2020-02-07 19:00:33 -08:00
e8528609ec libsysprof-ui: land new UI design
This comprises a massive rewrite of the UI for browsing captures. We use
the SysprofAid class to scan capture files for content and then auto-
matically add visualizers and details pages.

To avoid breaking things incrementally, we just land this as a very large
commit. Not necessarily ideal, but given the amount of stuff that could
break, this is easier.

As part of this process, we're removing a lot of the surface API so that
we can limit how much we need to maintain in terms of ABI.
2019-06-24 20:52:40 -07:00
ded0233553 libsysprof-ui: add callgraph loading dialog
This can lag a bit on big profiles, so add a loading page while we generate
the callgraph in a thread.
2019-05-29 15:13:01 -07:00
7b017a31f1 libsysprof-ui: focus record button by default
Because if we break the "hit enter to launch, escape to stop" workflow
some people will be angry.
2019-05-29 15:13:01 -07:00
8a394aaf0f libsysprof-ui: hide unused sections 2019-05-29 15:13:00 -07:00
5ccccce26e libsysprof-ui: add format helper 2019-05-29 15:13:00 -07:00
16780fa765 libsysprof-ui: ignore negative and 0 averages
This ensures that we only calculate averages for marks that have a valid
duration. We also need a new field for the number of averages we added
so that we don't skew the results.
2019-05-29 15:13:00 -07:00
dd724fe77a backport weak pointers 2019-05-29 15:13:00 -07:00
abc9d7e1a8 libsysprof-ui: calculate min/max/avg for mark durations
This can be used in details later to show information about the marks.
2019-05-29 15:13:00 -07:00
10a826f58e libsysprof-ui: add rounded rectangle helper 2019-05-29 15:13:00 -07:00
aa2772ef87 libsysprof-ui: link up horizontal scrolling 2019-05-29 15:13:00 -07:00