InkReddit

Reddit for slow, beautiful screens.

KOReader UI plugins benchmark, round 2: latest releases, real 2,692-book library, and a mistake I fixed in round 1

/u/Critical_Horse5465 · r/koreader · 2026-10-27 21:55 UTC

Follow-up to my first benchmark. Emulator on an M4 Pro MacBook (Kindle PW5-like: 1236 × 1648, 300 DPI), KOReader v2026.07.2, real library of 2,692 EPUBs, tested 2026-10-27. All plugins on their latest stable tags: SimpleUI 3.0.1, ZenOS v4.2.0, Bookshelf v6.0.3, Bookends v5.31.0, VOS v1.4.1, Project:Title 2026.07-v3.8.3.

Bottom line (real library, 2,692 EPUBs; lower is better)

Stack Restart → library Live Lua heap after stress Close book Verdict Stock 269 ms 14.1 MiB 29 ms baseline Project:Title (covers on) 279 ms 13.9 MiB 28 ms light, close to Stock Bookshelf 273 ms 20.3 MiB 30 ms light, close to Stock VOS 291 ms 15.6 MiB 46 ms light, close to Stock ZenOS 461 ms 22.3 MiB 60 ms in between SimpleUI 466 ms 66.0 MiB 232 ms heaviest (66–86 MiB with VOS/Bookshelf) Other measurements Stock With the plugin Bookends: page turn in a book 4.7 ms 16.7 ms Bookends: close book 27 ms 49 ms Bookends: live Lua heap 14.3 MiB 18.0 MiB (+3.7) Bookshelf's own shelf: page turn 17.5 ms (Stock's list) 133 ms default animation, ~38 ms animation off Library paging, every stack 15–17.5 ms per page distributions overlap, no ranking

Bookends is small in absolute terms, but not free.

Compared with my previous round

https://preview.redd.it/hjzx33vjz2yh1.png?width=900&format=png&auto=webp&s=f438eb98de171ae9a7d38d5d80cdba249e5a083f

Mixed, with no plugin better across the board. Each plugin is compared with Stock of the same round (the rounds ran on different setups, so absolute times aren't comparable):

  • ZenOS: retained heap above Stock fell from +23 to +8 MiB; library render 1.4x → 1.2x Stock. Restart, open and close got relatively slower.
  • SimpleUI: library render improved (~3.5x → 2.4x Stock), heap about the same (+56 → +52 MiB), closing a book much slower (2.7x → 8.1x).
  • Bookshelf: close to Stock in both rounds (+5 → +6 MiB), but its own shelf pages slower (84 → 133 ms default, 26 → 38 ms animation off).
  • VOS: about the same, a bit heavier.

Several releases and the setup changed at once, so this shows direction, not cause.

Correction

In my first post Project:Title looked like the clear winner. That was my mistake: the harness never switched it to its cover list, while everything else ran covers. With covers on it is about as light as Stock (14 MiB, fastest book open at 98 ms) but its sort change is slower. A cover list costs roughly +20 ms on a sort change and +17 ms on first render for every stack that uses it.

Thanks, Andy

AndyHazz (Bookshelf's maintainer) reproduced the suite on Linux and sent a careful review. Most points applied to the older campaign and were already fixed, but his feedback led to: documenting that Bookshelf's library_* rows measure the stock browser with the plugin idle (the shelf has its own scenarios), reporting the fastest iteration next to the median because timing noise is one-sided, and removing the hardcoded macOS emulator path. Thank you.

Caveat

This is an emulator comparison, not Kindle hardware: 100 ms here is not 100 ms on a Kindle (no E-Ink delays, different CPU/storage, no real memory pressure). The memory figure is one forced-GC checkpoint per stack. I also included my own unpublished minimal plugin as a reference point; it was indistinguishable from Stock.

Full tables, charts, reports and reproduction steps: https://github.com/d1-m4ss/kindle_benchmark

-----------

For scale: the same full matrix takes about 20 minutes on a Mac emulator. On the real Paperwhite it’s roughly 6–8.5 hours, plus charging and cooldown pauses. If I find that much time, there’ll be a real-device benchmark soon; this is just for context.

Scenario (Stock, 250 books) Mac emulator Paperwhite Slower by Library paging (sequential) 17.6 ms 172.7 ms 10× Library paging (cached) 19.5 ms 264.3 ms 14× Library first render 26.8 ms 373.3 ms 14× Change sort mode 32.5 ms 620.9 ms 19× Close book 36.6 ms 1012.0 ms 28× Open book 39.3 ms 1512.8 ms 39×

3 comments

Showing cached comments because Reddit is temporarily unavailable.
#2 · /u/snip3r77
2026-10-27 23:02 UTC

You may consider adding memory required too.

#3 · /u/yarn_install
2026-10-27 23:22 UTC

Interesting that closing a book is faster with ZenOS + Bookshelf than ZenOS by itself