• Ell's avatar
    app, icons, menus: add performance-log recording to the dashboard · 36477bb2
    Ell authored
    Add an option to record a performance log through the dashboard.
    The log contains a series of samples of the dashboard variables, as
    well as the full program backtrace, when available.  As such, it
    essentially acts as a built-in profiler, which allows us to
    correlate program execution with the information available through
    the dashboard.  It is meant to be used for creating logs to
    accompany perofrmance-related bug reports, as well as for profiling
    GIMP during development.
    
    The sample frequency defaults to 10 samples per second, but can be
    overridden using the GIMP_PERFORMANCE_LOG_SAMPLE_FREQUENCY
    environment variable.  Backtraces are included by default when
    available, but can be suppressed using the
    GIMP_PERFORMANCE_LOG_NO_BACKTRACE environment variable.
    
    Logs are created through the new "record" button at the bottom of
    the dashboard dialog.  When pressed, a file dialog is opened to
    select the log file, and, once confirmed, data is being recorded to
    the selected file.  Recording is stopped by pressing the "record"
    button again (we use a highlight to indicate that recording is
    active.)
    
    While recording, the "reset" button is replaced with an "add marker"
    button, which can be used to add event markers to the log.  These
    can be used to mark events of interest, such as "started painting"
    and "stopped painting", which then appear in the log as part of the
    sample stream.  Markers are numbered sequentually, and the number
    of the next (to-be-added) marker appears on the button.  Shift-
    clicking the button adds an empty (description-less) marker, which
    is only identified by its number; this can be used when markers
    need to be added quickly.
    
    The log is an XML file, containing some extra information (such as
    the output of "$ gimp -v", and symbol information) in addition to
    the samples.  The data in the file is delta-encoded to reduce the
    file size, meaning that samples (as well as some other elements)
    only specify the changes since the previous sample.  This adds a
    necessary decoding step before data can be processed; the next
    commit adds a tool that does that.
    
    There are currently no tools to actually analyze the data -- that's
    still TBD -- but at least we can start gathering it.
    36477bb2
Name
Last commit
Last update
.gitlab Loading commit data...
app Loading commit data...
app-tools Loading commit data...
build Loading commit data...
cursors Loading commit data...
data Loading commit data...
desktop Loading commit data...
devel-docs Loading commit data...
docs Loading commit data...
etc Loading commit data...
icons Loading commit data...
libgimp Loading commit data...
libgimpbase Loading commit data...
libgimpcolor Loading commit data...
libgimpconfig Loading commit data...
libgimpmath Loading commit data...
libgimpmodule Loading commit data...
libgimpthumb Loading commit data...
libgimpwidgets Loading commit data...
m4macros Loading commit data...
menus Loading commit data...
modules Loading commit data...
pdb Loading commit data...
plug-ins Loading commit data...
po Loading commit data...
po-libgimp Loading commit data...
po-plug-ins Loading commit data...
po-python Loading commit data...
po-script-fu Loading commit data...
po-tags Loading commit data...
po-tips Loading commit data...
po-windows-installer Loading commit data...
themes Loading commit data...
tools Loading commit data...
.dir-locals.el Loading commit data...
.gitignore Loading commit data...
.kateconfig Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog.pre-1-0 Loading commit data...
ChangeLog.pre-1-2 Loading commit data...
ChangeLog.pre-2-0 Loading commit data...
ChangeLog.pre-2-2 Loading commit data...
ChangeLog.pre-2-4 Loading commit data...
ChangeLog.pre-2-6 Loading commit data...
ChangeLog.pre-git Loading commit data...
HACKING Loading commit data...
INSTALL.in Loading commit data...
LICENSE Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
NEWS.pre-2-0 Loading commit data...
NEWS.pre-2-10 Loading commit data...
NEWS.pre-2-2 Loading commit data...
NEWS.pre-2-4 Loading commit data...
NEWS.pre-2-6 Loading commit data...
NEWS.pre-2-8 Loading commit data...
README Loading commit data...
README.i18n Loading commit data...
acinclude.m4 Loading commit data...
authors.dtd Loading commit data...
authors.xml Loading commit data...
authors.xsl Loading commit data...
authors4gimp-web.xsl Loading commit data...
autogen.sh Loading commit data...
config.h.win32 Loading commit data...
configure.ac Loading commit data...
gimp-zip.in Loading commit data...
gimp.doap Loading commit data...
gimp.pc.in Loading commit data...
gimpthumb.pc.in Loading commit data...
gimpui.pc.in Loading commit data...