With several hundred VMs, the Virtual Machines list froze the browser for a moment on every sort, every filter key and every live update. The list now does much less work per row, so it looks the same but answers faster.
Nothing to learn: the list has the same columns, states and actions.
Sorting a big list by State takes about half the time or less. In our test with 489 VMs it went from 911 to 350 ms.
The page freezes less while VMs change in the background: 23.9% of the time before, 6.7% after, in the same test.
Typing in the filter box shows results sooner: about 1.0 s per key before, 0.6 s after, in our re-run today.
It also fixes two display bugs. Running VMs no longer show as "Starting" when you go from a Harvester cluster's explorer in Rancher to Virtualization Management. A VM no longer picks up volumes or migrations from a VM with the same name in another namespace.
The flow
1
The list looks the same
We open Virtual Machines with 489 VMs, 100 per page. Before and after show the same columns, states and buttons.
The change is only under the hood. Users see no new controls and no change in layout.2
Sorting by State is about twice as fast
We click the State column header. The pink badge shows how long the list took to redraw.
Today's re-run: 0.57 s before and 0.29 s after (the middle value of 15 sorts each). During that time the browser does not react to clicks.3
The filter answers faster
We type "c12" into the filter box, one key at a time.
Each key took about 1.0 s before and 0.6 s after (the middle value of 9 keys each). Same results on both sides.4
What we measured during the review
We tested the change on our Harvester with 489 VMs, before it merged.
The second number matters most in daily use: while VMs start, stop or migrate, the list updates live, and before the change the page was frozen for almost a quarter of that time.
Video (optional)
0:00 Before · 0:25 Switching to the new build · 0:38 After · 0:59 Summary
Notes
How we measured today: the UI built just before and just after the change, run on this laptop against our test Harvester. The real VMs were copied in the browser to reach 489 (a sixth of them running). Nothing was created on the cluster. A timer in the page measured from the click or key press until the list was redrawn.
The gain depends on the data. It is largest with many volumes and migrations (the author saw 6.0 s go down to 0.7 s with 200 migrations) and small with few VMs.
The list still loads every VM into the browser. Paging on the server, which large sites need, is still open in Issue 9513.
The two display bugs need a Rancher setup and a running migration to show, so they are not in the images.