1. 29 Jul, 2020 1 commit
    • Ell's avatar
      tools: add performance-log-close-tags.py, use in performance-log-viewer · b58ccec8
      Ell authored
      Add a new performance-log-close-tags.py tool, which closes unclosed
      tags in incomplete performance logs, allowing the rest of the
      perofmance-log tools to process them.  This is necessary for
      unfinished progressive logs.
      
      Use the new tool as part of the pipeline in performance-log-viewer.
      
      (cherry picked from commit e5fe1ef1)
      b58ccec8
  2. 10 Oct, 2018 1 commit
    • Ell's avatar
      tools: add performance-log-coalesce.py; use in performance-log-viewer · 8c91206d
      Ell authored
      Add a new performance-log-coalesce.py tool, which groups together
      performance-log address-map entries belonging to the same function
      into a single symbol, by filling-in missing base symbol addresses.
      The addresses are grouped such that each set of addresses
      corresponding to a symbol of the same name, in the same source
      file, are given the same (unique, but arbitrary) base address.
      See the previous commit for why this is necessary.
      
      This should work fine in most cases, however, for logs produced on
      Windows, it can over-coalesce addresses belonging to different C++
      lambda-functions in the same source file, since they all seem to be
      given the same _FUN symbol name.
      
      Use the new tool as part of the pipeline in performance-log-viewer.
      
      (cherry picked from commit cb51ea98)
      8c91206d
  3. 16 Sep, 2018 1 commit
    • Ell's avatar
      tools: add performance-log-viewer.py and driver · cc18c2f8
      Ell authored
      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.
      
      (cherry picked from commit 3601c918)
      cc18c2f8