Commit Graph

13 Commits

Author SHA1 Message Date
Ell 46e5e4d478 tools: in performance-log-viewer.py, handle infinities in sample graph
Don't take infinite values into account when calculating the
vertical scale of sample graphs, and rather display infinite values
as dashed lines at the top of the graph.
2018-09-29 15:43:46 -04:00
Ell fca05065e1 tools: in performance-log-viewer.py, retain call-graph path
In the performance-log viewer's profile view, retain the current
call-graph path across state changes.
2018-09-29 00:16:20 -04:00
Ell 6ad3dbdb17 app: in performance-log-viewer.py, add undo support
Add undo functionality to the performance-log viewer, which allows
undoing/redoing changes to the sample selection, and the call-graph
state.
2018-09-28 16:30:57 -04:00
Ell d33fb0e7b8 tools: various improvements in gimp-performance-log-viewer.py
Fix int-ratio variable formatting when the input is NaN, which can
happen when calculating the standard deviation, if all the values
are infinite.

Fix keyboard sample-range selection.

Deselect all samples when right-clicking a sample graph.
2018-09-27 01:13:04 -04:00
Ell 51d9934942 tools: in performance-log-viewer.py, right-align backtrace frame number column 2018-09-23 01:38:09 -04:00
Ell 407e9f36ca tools: in performance-log-viewer.py, set thread filter search column 2018-09-23 01:17:52 -04:00
Ell 3f630378b0 tools: in performance-log-viewer.py, add thread filter to profile
In the performance-log viewer, add an option to filter which
threads, and which states of each thread, are included in the
profile.  By default, all threads in the RUNNING state are
included.
2018-09-23 00:53:20 -04:00
Ell a7afbe13ec tools: in performance-log-viewer.py, defer UI updates util needed
In the performance-log viewer, defer updates to the various UI
elements when the selection changes until they're actually shown.
This improves responsiveness when changing the selection.
2018-09-23 00:53:20 -04:00
Ell 2c8e3f8e0a tools: only show object/source basename in performance-log backtraces
... to reduce their verbosity.  Show the full path in the
corresponding tooltip.
2018-09-21 09:29:10 -04:00
Ell c7a4eb4602 tools: replace performance-log viewer call-graph direction icons
Use the less-ambiguous, if just as clumsy,
"format-indent-more/less" icons, to stand for the
caller -> callee, and callee -> caller, directions, respectively.
2018-09-21 07:45:14 -04:00
Ell c537341d35 tools: a few improvements in performance-log-viewer.py
Fix searching for samples by thread name, in particular, when there
are unnamed threads.

Use GtkMenuButton, instead of GtkButton, for the find-samples
header button.

Add mnemonics to the find-samples popover.
2018-09-21 02:41:56 -04:00
Ell f8dd444e98 tools: in performance-log-viewer.py, fix profile viewer search column 2018-09-16 12:34:58 -04:00
Ell 3601c9189b tools: add performance-log-viewer.py and driver
performance-log-viewer.py is a viewer for GIMP performance logs.
The viewer is made up of two parts: a sample-selection area at the
top, and an information area at the bottom.

The sample-selection area visualizes the sampled variables and
markers using a simultaneous set of plots, and displays the
currently selected samples.  Samples can be selected directly
through the sample-selection area, or by other means, such as
searching for all samples satisfying a certain condition, or
containing a certain function.

The information area shows global information stored in the log, as
well as information specific to the currently selected samples,
including variable listing and statistics, full backtrace, and
profile/call-graph information.

Note that performance-log-viewer.py takes its input from STDIN,
like the rest of the performance-log tools, and is therefore
suitable for use as part of a pipeline.  For standalone use, the
performance-log-viewer driver is also included, which takes the log
file as a command-line argument, and processes it through an
appropriate pipeline before feeding it to the viewer.
2018-09-16 12:03:57 -04:00