diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2020-02-29 18:35:55 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2020-02-29 18:52:04 -0500 |
commit | 1c184e718f5745cf3a53a3c389814a792e73aa51 (patch) | |
tree | 0959d07a8e4ac507aefa4867156d144ce2eff1dd /main.c | |
parent | 7fbf673ae2db33d6e47386bf3169d4b48f0fc8b4 (diff) | |
download | bfs-1c184e718f5745cf3a53a3c389814a792e73aa51.tar.xz |
passwd: Cache the user/group tables
This is a significant optimization for conditions that need these
tables:
Benchmark #1: ./bfs ~/code/linux -nouser >/dev/null
Time (mean ± σ): 232.0 ms ± 2.5 ms [User: 44.3 ms, System: 185.0 ms]
Range (min … max): 228.7 ms … 238.7 ms 12 runs
Benchmark #2: ./bfs-1.6 ~/code/linux -nouser >/dev/null
Time (mean ± σ): 1.050 s ± 0.012 s [User: 544.2 ms, System: 500.0 ms]
Range (min … max): 1.025 s … 1.063 s 10 runs
Benchmark #3: find ~/code/linux -nouser >/dev/null
Time (mean ± σ): 1.040 s ± 0.012 s [User: 533.6 ms, System: 500.6 ms]
Range (min … max): 1.017 s … 1.054 s 10 runs
Summary
'./bfs ~/code/linux -nouser >/dev/null' ran
4.48 ± 0.07 times faster than 'find ~/code/linux -nouser >/dev/null'
4.52 ± 0.07 times faster than './bfs-1.6 ~/code/linux -nouser >/dev/null'
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -40,6 +40,7 @@ * - dstring.[ch] (a dynamic string library) * - fsade.[ch] (a facade over non-standard filesystem features) * - mtab.[ch] (parses the system's mount table) + * - passwd.[ch] (a cache for the user/group tables) * - spawn.[ch] (spawns processes) * - stat.[ch] (wraps stat(), or statx() on Linux) * - time.[ch] (date/time handling utilities) |