Clone vs. fragment performance

I did some performance tests and realized fragments seem to be twice more CPU hungry than clones. I have a setup which consists of sooperlooper with 7 tracks (no GUI) and OSC client running custom OSC module and GUI with seven tracks.

In one case, i use seven fragment widgets with tracks loaded from track.json (see here: Matrix, fragments children widgets id). Running like this, OSC consumes 60% cpu time.

In second case, i use the same track as a regular composite widget (elements embedded in panel widget) with 6 clones of it (clone widgets). Now it consumes 30% cpu time.

Why is it?

sooperlooper_gui.json (4.6 KB)
sooperlooper.js (4.9 KB)
sooperlooper_gui_clone.json (17.8 KB)

On the other hand, it's interesting the clone version json is almost 4x bigger than the fragments one. But that's unrelated, i just noticed it seeing the attached files here.

Nevermind :smiley: it actually makes sense, since the fragments version basically holds only the fragments containers.

I don't think the performance difference is due to the choice of widget type, the layout is slightly different between the two versions and for the browser engine these small differences may change the drawing time a lot. Here's for example a modified version of track.json that performs better (it uses horizontal and vertical layouts to produce a responsive layout that the rendering engine handles well).
track.json (18.0 KB)