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.
This commit is contained in:
Ell 2018-09-16 11:34:37 -04:00
parent 7e186f3e5d
commit 3601c9189b
3 changed files with 2365 additions and 1 deletions

View File

@ -101,4 +101,6 @@ EXTRA_DIST = \
gimppath2svg.py \
performance-log-deduce.py \
performance-log-expand.py \
performance-log-resolve.py
performance-log-resolve.py \
performance-log-viewer \
performance-log-viewer.py

36
tools/performance-log-viewer Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
# performance-log-viewer -- GIMP performance log viewer driver
# Copyright (C) 2018 Ell
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
#
# Usage: performance-log-viewer FILE
if [ "$#" -ne 1 ]; then
echo "Usage: $0 FILE"
exit 1
fi
tools_dir="$(dirname "$(command -v -- "$0")")"
file="$1"
< "$file" || exit 1
< "$file" \
"$tools_dir/performance-log-expand.py" | \
"$tools_dir/performance-log-deduce.py" | \
"$tools_dir/performance-log-viewer.py"

2326
tools/performance-log-viewer.py Executable file

File diff suppressed because it is too large Load Diff