From fa2ceec4ae42660d8e5ac6093dc1a048387518fc Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Sun, 6 Aug 2023 12:24:19 +0300 Subject: [PATCH] man: add performance notes to find/index/server manpages --- man/mu-find.1.org | 21 +++++++++++++++++++++ man/mu-index.1.org | 18 ++++++++++++++++++ man/mu-server.1.org | 16 ++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/man/mu-find.1.org b/man/mu-find.1.org index 0296aa63..35ad5380 100644 --- a/man/mu-find.1.org +++ b/man/mu-find.1.org @@ -273,6 +273,27 @@ After restarting Wanderlust, the virtual folders should appear. *mu find* output is encoded according to the locale for =--format=plain= (the default format), and UTF-8 for all other formats (=sexp=, =xml=). + +* PERFORMANCE + +Some notes on performance, comparing the timings between some recent releases; +taking the total number for 10 test runs. + +1. time (repeat 10 mu find "" -n 50000 > /dev/null) +2. time (repeat 10 mu find "" -n 50000 --include-related --threads > /dev/null) + + +| release | time 1 (sec) | time 2 (sec) | +|---------------+--------------+--------------| +| 1.4 | 8.9s | 59.3s | +| 1.6 | 8.3s | 27.5s | +| 1.8 | 8.7s | 29.3s | +| 1.10 | 9.8s | 30.6s | +| 1.11 (master) | 10.1s | 29.5s | + + + + #+include: "exit-code.inc" :minlevel 1 #+include: "bugs.inc" :minlevel 1 diff --git a/man/mu-index.1.org b/man/mu-index.1.org index 6ba3188c..5efc3549 100644 --- a/man/mu-index.1.org +++ b/man/mu-index.1.org @@ -179,6 +179,24 @@ Things are again a little faster, even though the index does a lot more now (text-normalizatian, and pre-generating message-sexps). A faster machine helps, too! +** recent releases + +Indexing the the same 93000-message mail corpus with the last few releases: + +| release | time (sec) | notes | +|---------------+------------+------------------------------------------| +| 1.4 | 160s | | +| 1.6 | 178s | | +| 1.8 | 97s | | +| 1.10 | 120s | adds html indexing, sexp-caching | +| 1.11 (master) | 96s | adds language-guessing, batch-size=50000 | +| | | | + +Quite some variation! + +Over time new features / refactoring can change the timings quite a bit. At +least for now, the latest code is both the fastest and the most featureful! + #+include: "exit-code.inc" :minlevel 1 #+include: "prefooter.inc" diff --git a/man/mu-server.1.org b/man/mu-server.1.org index 5c062efd..a5e53e1c 100644 --- a/man/mu-server.1.org +++ b/man/mu-server.1.org @@ -63,6 +63,22 @@ directly through the emacs process input/output. This is noticeably faster for commands with a lot of output, esp. when the the temp-file uses a in-memory file-system. +* PERFORMANCE + +As an indication for the relative performance, we can simulate something ~mu4e~ +does; we take overall time of 50 such requests: + +#+begin_src sh +time build/mu/mu server --allow-temp-file --eval '(find :query "\"\"" :include-related t :threads t :maxnum 50000)' >/dev/null +#+end_src +(and ~--allow-temp-file~ for 1.11) + +| release | time (sec) | +|---------------+------------| +| 1.8 | 8.6s | +| 1.10 | 5.7s | +| 1.11 (master) | 2.8s | + #+include: "muhome.inc" :minlevel 2