1. 02 Sep, 2018 1 commit
    • 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
  2. 31 Aug, 2018 2 commits
  3. 26 Aug, 2018 1 commit
  4. 19 Aug, 2018 4 commits
  5. 11 Jul, 2018 1 commit
  6. 01 Jul, 2018 1 commit
    • Ell's avatar
      app: add active async-operations counter to the dashboard · aa382650
      Ell authored
      Add an "async" field to the dashboard's "misc" group, showing the
      number of async operations currently in the "running" state (i.e.,
      all those GimpAsync objects for which gimp_async_finish[_full]() or
      gimp_async_abort() haven't been called yet).
      aa382650
  7. 28 Jun, 2018 4 commits
  8. 24 Jun, 2018 1 commit
  9. 21 Jun, 2018 4 commits
    • Ell's avatar
      app: fix dashboard swap read/write variable order · 51793b11
      Ell authored
      ... to satisfy the inter-variable dependencies, so that the READING/
      WRITING variables are based on the READ/WRITTEN values of the
      current sample, and not the previous one.
      51793b11
    • Ell's avatar
      app: more fixes to last dashboard commit · fda67184
      Ell authored
      Don't show percentage for the swap read/written fields, and make
      sure their history underlays are displayed correctly even if the
      swap limit changes.
      fda67184
    • Ell's avatar
      app: a few fixes to last commit · ab9f70d9
      Ell authored
      ab9f70d9
    • Ell's avatar
      app: add swap read/write fields to the dashboard · 6b9aba30
      Ell authored
      Add "read" and "written" fields to the dashboard swap group, which
      report the total amount of data read-from/written-to the tile swap,
      respetively.  These fields are non-active by default.  When these
      fields are active, show a color underlay in the swap group's meter,
      indicating when data was beging read-from/written-to the swap.
      
      Improve the swap busy indicator (used as the meter's LED), so that
      it's active whenever data has been read-from/written-to the swap
      during the last sampling interval, rather than at the point of
      sampling.
      6b9aba30
  10. 19 Jun, 2018 3 commits
    • Ell's avatar
      app: in the dashboard, fix statm file-descriptor initialization · dc6ea0a9
      Ell authored
      ... in the unlikely case that getting the page-size fails.
      dc6ea0a9
    • Ell's avatar
      app: make the dashboard scrollable · 9832f712
      Ell authored
      The dashboard is getting pretty crowded -- let's make it
      scrollable.
      9832f712
    • Ell's avatar
      app: add memory group to the dashboard · 8d0766c1
      Ell authored
      The memory group shows memory-usage information: the currently used
      memory size, the available physical memory size, and the total
      physical memory size.  It can also show the tile-cache size, for
      comparison against the other memory stats.  The memory group is
      active but contracted by default.
      
      Note that the upper-bound of the meter is the physical memory size,
      so the memory usage may be > 100% when GIMP uses the swap.
      
      This is currently implemented for *nix systems with Linux-like
      procfs, and Windows.
      8d0766c1
  11. 20 May, 2018 3 commits
  12. 04 Apr, 2018 1 commit
  13. 02 Apr, 2018 2 commits
  14. 25 Jan, 2018 1 commit
  15. 20 Jan, 2018 1 commit
  16. 19 Jan, 2018 2 commits
  17. 04 Jan, 2018 1 commit
  18. 31 Dec, 2017 1 commit
  19. 30 Dec, 2017 2 commits
    • Ell's avatar
      app: improve dashboard cache-maximum tooltip · d3cfdf7a
      Ell authored
      d3cfdf7a
    • Ell's avatar
      app: various GimpDashboard improvements · ee418191
      Ell authored
      Refactor GimpDashboard to autogenerate the UI based on a
      description of the different variables, fields, and groups.
      
      Allow individual groups to be expanded/collapsed, and individual
      fields to be enabled/disabled.  Save the relevant state in the
      dashboard's aux-info.
      
      Add fields for the new GeglStats properties, as per GEGL commit
      25c39ce6c9bb618f06ac96d118e624be66464d74.  The new fields are not
      enabled by default.
      
      Add "reset" action, to clear the history, and reset cumulative
      data.
      ee418191
  20. 25 Dec, 2017 1 commit
  21. 19 Dec, 2017 3 commits