ArrayEditable tooltip performance improvements #2919
Labels
No Label
backend
critical
defect
duplicate
enhancement
fixed
frontend
general
invalid
major
minor
normal
oxjs
pandora_client
python-ox
task
trivial
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: 0x2620/pandora#2919
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I spent a bit of time profiling to make updating the list of items a bit faster. The big win is creating one Ox.Tooltip for the whole , and making Element's setTooltip speedier when there is no tooltip. Adding & removing 1000 items in a contrived (but I think relatively realistic) benchmark is about 2× faster with this branch.
On https://gitlab.com/wjt/oxjs.git :
ArrayEditable-performance
holds the patchesArrayEditable-performance-benchmark
holds the little benchmarkOx.typeOf
and GC both show up pretty high (~20% between them) in a profiler. I don't think it helps that every call toOx.typeOf
allocates a (tiny) string, so you end up with loads of minor GC pauses. I experimented with a fast path using a combination oftypeof
andArray.isArray
with no real success, though...Another possible improvement for
ArrayEditable
might be to update existingEditable
child elements in-place (where possible), rather than deleting and recreating them each time.merged the performance branch but did not merge benchmark since it requires .git and crashed my chrome tab...
Yikes!
I guess I didn't really intend the benchmark to be merged, it's just what I was working with in case you were interested – but if you'd like I can spend some time cleaning it up, removing the
.git
dependency and investigating why it crashes your browser – maybe the set of test elements is just too large?no need to rework the benchmark, it's good for testing but not needed on oxjs examples page. will keep a copy and try to use console.profile, have not used it so far..
I get some output if I reduce the Ox.loop so might be just to large or encoding videos int he background makes my computer to slow...