Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-7267

Stunner - Improve computation performance

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • None
    • 7.8.0.Final
    • Designer
    • 2018 Week 17-18, 2018 Week 19-22, 2018 Week 23-24, 2018 Week 25-26

      Issue
      In general, at some points, Stunner takes "too much" time for performing some operations.

      The experience depends on the browser - Chrome and FF are, although can be improved, result the better ones, on the other hand Safari and specially IE11. the experience results not fluent, being slow.

      First analysis

      After a quick initial analysis, it seems the main issue, the one that really makes the experience slow, relies on the toolbox (contextual menu).

      Notice that the toolbox evaluates at runtime the possible candidate elements that can be created, taking into account the current diagram state and the specified domain rules (eg: BPMN). This feature on the other hand implies some computations each time a toolbox has to be displayed for an element, as the icons that appear are being provided after doing computations (evaluations) in order to look up just valid candidates.

      Anyway the consumed time to obtain and render the toolbox items, and the general user experience as well, can be improved in some ways:

      • Toolbox animations
        • Reduce the duration time
        • Change to other animation types (eg: fade in/out)
      • Toolbox pictures
        • Create or use the "ImageCache" (lienzo) to avoid loading pictures each time the toolbox is showing
      • Toolbox computations (candidate solutions)
        • Caché some of the most used "queries" to the runtime engine in order to obtain the canddiates
        • Caché the candidates for each element in the diagram, and perform updates in case the context is changed (to re-evaluate context). This way avoid to perform these computations once clicking on the toolbox, ot at least, just for first time
        • Same idea as point above, and also ensure that the cache update (computations, re-evaluations) are being performed on background (when the user does not interacts)

              romartin@redhat.com Roger Martinez
              romartin@redhat.com Roger Martinez
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: