Search Issue Tracker

Active

Votes

0

Found in

6000.0.35f1

6000.1.0b3

Issue ID

UUM-95363

Regression

No

Huge performance overheads appear when there is a large amount of bindings in the UI Toolkit

-

Reproduction steps:
1. Open the attached “repro_IN-90324“ project
2. In the Editor menu, select “BugReport → Bind Test Window“ and snap it somewhere (for example, near your Scene tab)
3. Open the Profiler (“Window → Analysis → Profiler“) and snap it on top of the “Bind Test Window“ so it’s not visible
4. In the Profiler, in the “Target Selection“ dropdown, change to “Edit Mode“
5. Enable the “Deep Profile“ selection
6. Press “Record profiling information“ or simply press “F9” on your keyboard
7. Don’t move your mouse for a while and observe the graph in the “CPU Usage“ section
8. Notice that the performance stays around 0.25 ms (could vary depending on the machine)
9. Now dock the “BindTestWindow“ and the Profiler tabs side-by-side
10. Don’t move your mouse for a while and observe the graph in the “CPU Usage“ section

Expected result: Performance stays the same
Actual result: Performance downgrades significantly to consistent ~50 ms with an overhead every ~10 frames reaching ~66 ms (could vary depending on the machine)

Reproducible with: 6000.0.35f1, 6000.1.0b3
Couldn’t test with: 2022.3.56f1 - Not able to resolve the compilation errors without changing the Script functionality

Reproducible on: Windows 10 (22H2), Windows 11 (23H2) (reporter’s environment)
Not reproducible on: No other environments tested

Notes:

* As mentioned before, the specific performance measurements (in ms) might vary depending on the machine that the issue is tested on
* According to the reporter, in the “VisualTreeDataBindingsUpdater.Update” process, there are numerous unnecessary assignments (that involve the “DataBindingContext” and the “PropertyPath”) which leads to high overhead from the copying of these structures

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.