Commit graph

46 commits

Author SHA1 Message Date
Henrik Böving
3120c3d8f8
feat: add bv_decide benchmarks (#5203) 2024-08-29 12:45:58 +00:00
Marc Huisinga
9009c1ac91
fix: ilean loading performance (#4900)
This PR roughly halves the time needed to load the .ilean files by
optimizing the JSON parser and the conversion from JSON to Lean data
structures.

The code is optimized roughly as follows:
- String operations are inlined more aggressively
- Parsers are changed to use new `String.Iterator` functions `curr'` and
`next'` that receive a proof and hence do not need to perform an
additional check
- The `RefIdent` of .ilean files now uses a `String` instead of a `Name`
to avoid the expensive parse step from `String` to `Name` (despite the
fact that we only very rarely actually need a `Name` in downstream code)
- Instead of `List`s and `Subarray`s, the JSON to Lean conversion now
directly passes around arrays and array indices to avoid redundant
boxing
- Parsec's `peek?` sometimes generates redundant `Option` wrappers
because the generation of basic blocks interferes with the ctor-match
optimization, so it is changed to use an `isEof` check where possible
- Early returns and inline-do-blocks cause the code generator to
generate new functions, which then interfere with optimizations, so they
are now avoided
- Mutual defs are used instead of unspecialized passing of higher-order
functions to generate faster code
- The object parser is made tail-recursive

This PR also fixes a stack overflow in `Lean.Json.compress` that would
occur with long lists and adds a benchmark for the .ilean roundtrip
(compressed pretty-printing -> parsing).
2024-08-29 11:51:48 +00:00
Sebastian Ullrich
f6265e25f4
chore: fix "max dynamic symbols" metric (#4669)
As we do not build multiple shared libraries on non-Windows anymore,
count the max exported symbols per static library instead.
Unfortunately, this still does seem to match the number on Windows.
2024-07-08 09:09:19 +00:00
Joachim Breitner
4f50544242
chore: Nat.repr microbenchmark (#3888) 2024-04-17 18:10:32 +00:00
Marc Huisinga
093e1cf22a
test: add language server startup benchmark (#3558)
Benchmark to catch future regressions as the one fixed in #3552.
2024-03-04 09:01:51 +00:00
Sebastian Ullrich
c9aea32d3e
chore: speedcenter: count max symbols in shared libraries (#3418) 2024-02-20 19:25:24 +00:00
Sebastian Ullrich
8bc1a9c4ba
chore: actually include full build in benchmark (#3158)
I must have reverted too much while testing #3104
2024-01-10 14:33:27 +00:00
Sebastian Ullrich
caf7a21c6f
chore: include full build in stdlib benchmark (#3104) 2023-12-23 16:27:07 +00:00
Sebastian Ullrich
767139b235
chore: use all cores in stdlib benchmark 2023-12-21 10:37:18 +01:00
Sebastian Ullrich
b278172b7c chore: add import Lean benchmark 2023-11-07 18:46:28 +01:00
Sebastian Ullrich
00e981edcd perf: do not inhibit caching of default-level match reduction 2023-10-08 17:24:20 -07:00
tydeu
2ac782c315 test: lake: add env & dep cfg benchmarks + cleanup 2023-09-22 20:31:48 -04:00
Sebastian Ullrich
c3fd34f933 chore: disable "lake build lean" benchmark for now 2023-09-22 20:05:20 +02:00
tydeu
00efb7eaca test: add reconfigure benchmark 2023-09-22 20:05:20 +02:00
tydeu
5b2e3e2b0a test: make compatible with olean caching 2023-09-22 20:05:20 +02:00
tydeu
8dba187910 chore: inundation for configure benchmark 2023-09-22 20:05:20 +02:00
tydeu
1d51492139 test: lake: add build Init/Lean/Lake benchmark 2023-09-22 20:05:20 +02:00
tydeu
9a0e57c721 test: add lake benchmarks 2023-09-22 20:05:20 +02:00
Sebastian Ullrich
bb738796ae test: update parser benchmark, add to speedcenter suite 2023-08-08 18:40:19 +02:00
Sebastian Ullrich
899b673531 test: add binarytrees.st benchmark 2023-01-19 14:44:20 +01:00
Sebastian Ullrich
6b8fa76265 test: benchmark workspace symbols search 2022-10-13 21:41:58 +02:00
Sebastian Ullrich
5b7e6661f9 chore: more RBMap cleanup 2022-10-06 17:26:43 -07:00
Sebastian Ullrich
6f4cea6dba feat: add rbmap_fbip benchmark 2022-10-06 17:26:43 -07:00
Sebastian Ullrich
9f29967fb0 chore: add rbmap.library benchmark to bench suite 2022-09-24 12:35:08 +02:00
Sebastian Ullrich
2e47a8d5ca test: actually register new benchmark 2021-12-03 09:25:53 +01:00
Sebastian Ullrich
2e36e362cb chore: bench: apparently make doesn't like writing to /dev/null anymore? 2021-10-20 12:44:30 +02:00
Sebastian Ullrich
5f4b1b1d44 Revert "Revert "feat: reintroduce libleanshared, link lean & leanpkg against it""
This reverts commit ccbc9d00db.
2021-08-20 09:42:05 -07:00
Sebastian Ullrich
ccbc9d00db Revert "feat: reintroduce libleanshared, link lean & leanpkg against it" 2021-08-20 15:39:00 +02:00
Sebastian Ullrich
40f41a1f14 chore: adjust binary size benchmark 2021-08-18 13:54:52 +02:00
Sebastian Ullrich
d3f007b3cd chore: fix stdlib benchmarks 2021-08-12 22:41:42 +02:00
Sebastian Ullrich
48361d92dd chore: increase robustness of stdlib benchmark? 2020-12-30 17:01:05 +01:00
Sebastian Ullrich
1fc5b30fe1 chore: measure stage 2 sizes & add C lines benchmark 2020-12-18 17:47:11 +01:00
Sebastian Ullrich
567034e288 chore: benchmark stdlib with interpreter 2020-12-16 21:47:56 +01:00
Sebastian Ullrich
1add44916c chore: remove broken & redundant "new parser Core.lean" benchmark 2020-11-13 21:08:46 +01:00
Sebastian Ullrich
0c97f648a8 chore: use stage 2 for benchmarking
/cc @leodemoura
2020-10-29 12:29:52 +01:00
Sebastian Ullrich
ce96fab8de chore: fix passing additional LEAN(C)_OPTS to make 2020-10-22 12:00:39 +02:00
Sebastian Ullrich
5b4247a9c7 chore: fix stdlib benchmark 2020-09-28 13:39:32 +02:00
Sebastian Ullrich
9c6ff0baac chore: certainly this one is the right fix 2020-08-29 12:56:37 +02:00
Sebastian Ullrich
0b727a6d78 chore: fix stdlib benchmark once more... 2020-08-29 10:40:21 +02:00
Sebastian Ullrich
2c1b0e3114 chore: remove hanging stdlib bench test from CI 2020-08-26 11:34:43 +02:00
Sebastian Ullrich
defc7f766e chore: try to fix benchmark once more... 2020-08-24 17:49:55 +02:00
Sebastian Ullrich
9106417693 chore: fix speedcenter test, perf stat runner not supporting multiline cmds 2020-08-24 16:30:50 +02:00
Sebastian Ullrich
015903f055 chore: speedcenter: benchmark actual, parallel stdlib build 2020-08-24 13:43:44 +02:00
Sebastian Ullrich
086e9e062a chore: measure maxrss in benchmarks 2020-07-21 14:47:22 +02:00
Sebastian Ullrich
b7f6f37079 chore: remove unreliable cache metrics 2020-07-15 17:16:04 +02:00
Sebastian Ullrich
8826330862 chore: add slightly different config for new speedcenter 2020-07-10 17:28:58 +02:00