Skip to content

Commit d3a2ddd

Browse files
committed
Record aggregate CHANGELOG entry for perf improvements
1 parent c867fad commit d3a2ddd

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

CHANGELOG.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,51 @@ understanding of patterns often seen in commit messages.
1919

2020
- If `--width` is specified multiple times, ignore all but the last occurrence.
2121

22+
- A large number of straightforward optimizations reduce total third-party
23+
dependency count; compilation time; execution time; and dynamic memory
24+
allocations. See below for details.
25+
26+
The optimization impact is measured with `hyperfine` and Valgrind's massif for
27+
three distinct inputs: an empty file, a file that corresponds to the 3rd
28+
quartile of message sizes, and Project Gutenberg's _Don Quixote_ in plain-text
29+
[[quixote]], where
30+
31+
$ wc corpus-* | grep [.]
32+
14 82 577 corpus-3rd-qu.txt
33+
43285 430276 2391727 corpus-don-quixote.txt
34+
0 0 0 corpus-empty.txt
35+
36+
$ sha256sum corpus-*
37+
ff90dc6f56b02faa2f67a9b937ba935ea62f246e0165d7212b2d0e500668f40b corpus-3rd-qu.txt
38+
bc899c11c714f764f90aaddfe08e1b50d67812da8e54bc12c814a4544ae0c8ff corpus-don-quixote.txt
39+
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 corpus-empty.txt
40+
41+
Largely by removing the `clap` and `regex` packages `commitmsgfmt` has become
42+
considerably leaner across the board, and without incurring undue future
43+
maintenance cost:
44+
45+
VERSION | PACKAGES | BINARY SIZE | `.text` SECTION | MEAN BUILD TIME
46+
| | stripped | | debug release
47+
----------+----------+-------------+-----------------+-----------------
48+
1.5.0 | 42 | 2103792 b | 1126.4 KiB | 3.073 s 4.525 s
49+
1.6.0 | 29 | 494032 b | 334.3 KiB | 0.910 s 1.143 s
50+
1.6.0 (%) | 70% | 23% | 30% | 30% 25%
51+
52+
53+
VERSION | MEAN EXECUTION TIME | TOTAL ALLOCATIONS
54+
| empty 3rd qu don-quixote | empty 3rd don-quixote
55+
----------+-----------------------------+---------------------------------------
56+
1.5.0 | 7.1 ms 7.6 ms 67.4 ms | 4,944,024 B 5,531,448 B 29,304,608 B
57+
1.6.0 | 4.9 ms 4.6 ms 52.6 ms | 15,736 B 36,760 B 22,015,736 B
58+
1.6.0 (%) | 69% 61% 78% | 0% 1% 75%
59+
60+
61+
The `clap` package contributed the most to build time. The `regex` package
62+
contributed the most to execution time and dynamic allocations. Neither
63+
discovery surprised.
64+
65+
[quixote]: https://www.gutenberg.org/cache/epub/996/pg996.txt
66+
2267
## 1.5.0 - 2022-07-30
2368

2469
- Fix an edge case where footnote references followed by punctuation would

0 commit comments

Comments
 (0)