llselect + AngularJS 1.x - benchmark

Three ways to put a select in an AngularJS 1.x app, on the same data and the same page. See angularjs/README.md for what each one is.

The dataset is a real timezone picker: every IANA zone your browser knows (Intl.supportedValuesOf('timeZone'), ... of them - the exact count is your browser's), built ... times over. A field real apps ship, and already enough to make ui-select crawl.

Change the two numbers below and re-run to watch the ratios move (they are also the ?items= and ?widgets= query parameters, so a run is linkable). The incumbent <select ng-options> builds every option up front, so its cost is linear in the item count; llselect builds the list only on open, so its cost is flat. That is what widens the gap as the list grows - not superlinearity. ui-select is the one that is genuinely superlinear, and only per digest.

What the numbers mean

Honest limits of this page