3 ms·
Yes it is. The Spreadsheet is powered by ReactJS and Konva. React and Konva provides a Profiler and Devtools to measure performance and to prevent any un-neces
by rowsncolumns 3y ago
Yes it is. The Spreadsheet is powered by ReactJS and Konva.
React and Konva provides a Profiler and Devtools to measure performance and to prevent any un-necessary re-renders.
We also measure the Canvas FPS to make sure rendering is at max 60fps. The bottleneck we have identified is with scrolling large amounts of text, especially in large 42 inch 4K monitors, where FPS limits to 55-60fps. We do have some workaround planned for large monitors, by splitting the canvas into 4 layers.
In terms of regression, we use Cypress for most e2e testing, but the test cases are small as of now.
- mklepaczewski 3y agoYou mentioned physical size of monitors. Does it affect performance in your tests? I would be very, very surprised if performance on 27" 4k monitor was any different than on 42" 4k monitor. Maybe I'm not aware of some quirk?
- rowsncolumns 3y agoI have tested on 32" 4K and 27" 4K and there was no performance issues. Slight degradation on Dell 42" 4K, could be because of the ppi or the pixel ratio, which might be causing canvas/row/cell/ dimensions to be not rounded to whole numbers (this can affect perf).
- mklepaczewski 3y agoInteresting. Can you elaborate how you measure performance? What's perfoemance? Framer ate, cpu/gpu usage, mem, scroll speed?
- rowsncolumns 3y agoThere are quite a few methods to measure performance We start of with the FPS monitoring tool which measure the frame rate, memory consumption and GPU sange We switch to devtools->Performance analysis to measure function call times, layout thrashes and shifts, RAF bottleneck, memory consumption and CPU time. We also use React devtools to measure re-rendering. Scrolling is wrapped in Request animation frame loop, hence its being controlled by the browsers frame rate.
- doix 3y agoIt's usually the scaling. If you're on 27" at 4k, you probably have some scaling enabled, anywhere from 1.25x to 2x, so less stuff fits on the screen. Since less stuff fits on the screen, less stuff gets rendered and performance should be better. At 42" 4k, there's probably no scaling, so more stuff fits on the screen.