Improvement of rendering performance of the interface

Discuss the jamovi platform, possible improvements, etc.
Post Reply
User avatar
losses
Posts: 5
Joined: Tue Jun 12, 2018 6:24 am

Improvement of rendering performance of the interface

Post by losses »

Jamovi is really a impressive stat tool, it's interface design is beautiful and intuitive. but people may feel the interface is pretty laggy when the animation is playing. I think this is a big problem in the domain of user experience.

Since Jamovi's front-end interface is using web technology, which is good for fast development, but there're a lot of trap which slow down the program, like triggering repaint/layout (checkout https://gist.github.com/paulirish/5d52fb081b3570c81e3a).

Shortly, the animation of modifying the width and height of any DOM element will trigger layout, which impact the rendering performance a lot, that happened when you open "setup" panel, dragging the divider between data grid and report area.

This could be solved by some tricky solution, like:

1. When clicking the setup button
* don't expand the top panel with animated height
* show the panel directly, give an animation to its content (search "Slide down in" in https://developer.microsoft.com/en-us/f ... web/motion), the animation is implemented with CSS transform which won't trigger layout
* People would still feel it's slide down from the top, but with out trigger layout frequently, the interface is less laggy.

2. When dragging the divider between data grid and data report
* don't adjust the with of both side dynamically
* show a gray bar that indicate the new position of divider, when `mouseup` triggered, adjust the width of both side
* note: implement the movement of the "gray bar" with CSS `transform` props (or `canvas` element) but not `left` props

btw, similar problem happens when users switch between columns whith "setup" panel, adding new filter, open files panel, settings panel, module manager.

It's only some suggestion for the development team, really hope it will help :blush: .
User avatar
jonathon
Posts: 2625
Joined: Fri Jan 27, 2017 10:04 am

Re: Improvement of rendering performance of the interface

Post by jonathon »

hi,

YMMV ... there's lots of computers where jamovi runs silky smooth. a large part of it depends on what microsoft or apple have been breaking lately. for example, the hardware accelerated graphics were broken by apple in macOS catalina, and we're still waiting for google chrome to fix those issues (jamovi is built on electron, which is built on chrome/chromium). so we're often sandwiched by these big players.

damo's working on some adjustments to the splitter at the moment (on an unrelated errand) but it involves moving the splitter to use the grid layout. this should results in performance improvements.

cheers

jonathon
User avatar
losses
Posts: 5
Joined: Tue Jun 12, 2018 6:24 am

Re: Improvement of rendering performance of the interface

Post by losses »

jonathon wrote:hi,

YMMV ... there's lots of computers where jamovi runs silky smooth. a large part of it depends on what microsoft or apple have been breaking lately. for example, the hardware accelerated graphics were broken by apple in macOS catalina, and we're still waiting for google chrome to fix those issues (jamovi is built on electron, which is built on chrome/chromium). so we're often sandwiched by these big players.

damo's working on some adjustments to the splitter at the moment (on an unrelated errand) but it involves moving the splitter to use the grid layout. this should results in performance improvements.

cheers

jonathon
yeah, but the interface is consistently laggy on my surface pro 4 (i5 8gb) :')
Post Reply