Fast with 50 pages.
Fast with 500,000.

Opening a page, searching, switching views, completing a task, and paging through the calendar, timed in the app itself, from fifty pages to half a million.

66 ms

to open a page

with 500,000 pages

28 ms

to search

with 500,000 pages

39 ms

to switch views

with 500,000 pages

A millisecond (ms) is a thousandth of a second. And 500,000 pages is ten new pages a day for 137 years.

Ten thousand times the pages. Still fast.

The grey bar is how many pages are in the workspace. The green number is how long you wait. Pick an action to see it at every size.

50
2,000
20,000
200,000
500,000

Every number

The table shows the median. Switch to the 99th percentile to see the time 99 tries in 100 came in under.

Pages in the workspace 502,00020,000200,000500,000
Open a page 47 ms 64 ms 66 ms 65 ms 66 ms
Search 28 ms 29 ms 29 ms 28 ms 28 ms
Switch views 20 ms 37 ms 36 ms 38 ms 39 ms
Complete a task 9 ms 22 ms 21 ms 22 ms 23 ms
Rename a page 6 ms 21 ms 25 ms 22 ms 26 ms
Next week 13 ms 31 ms 54 ms 37 ms 51 ms
Launch 541 ms 538 ms 534 ms 572 ms 637 ms

How these were measured

Try it on your own machine

Your numbers will depend on your machine. Wherever you run it, half a million pages should be about as fast as two thousand.

Time the app

The numbers above come from a build of Pikos with a timer compiled in. On a Mac, build it from source and run node apps/marketing/scripts/benchmark-app.mjs. It builds the workspaces, launches the app 7 times at each size, and takes about fifty minutes. --quick runs a shorter pass.

Time the database

The Pikos CLI builds the same half-million-page workspace and times the calls the app makes to it.

brew install pikos-app/tap/pikos-cli
pikos stress seed --db ~/pikos-bench.db --pages 500000
pikos stress bench --db ~/pikos-bench.db --runs 20

seed writes half a million pages into a new file, which took about four minutes on the laptop above. It won't touch the workspace your app uses, so your notes are safe. bench prints the median and the 95th percentile for each action, and --json adds the 99th. When you're done, delete ~/pikos-bench.db and the two files beside it that end in -wal and -shm.

Then let me know how it goes.