mirror of
https://github.com/restic/restic.git
synced 2026-02-03 20:39:52 -05:00
Hard links to the same file now get the same inode within the FUSE
mount. Also, inode generation is faster and, more importantly, no longer
allocates.
Benchmarked on Linux/amd64. Old means the benchmark with
sink = fs.GenerateDynamicInode(1, sub.node.Name)
instead of calling inodeFromNode. Results:
name old time/op new time/op delta
Inode/no_hard_links-8 137ns ± 4% 34ns ± 1% -75.20% (p=0.000 n=10+10)
Inode/hard_link-8 33.6ns ± 1% 9.5ns ± 0% -71.82% (p=0.000 n=9+8)
name old alloc/op new alloc/op delta
Inode/no_hard_links-8 48.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10)
Inode/hard_link-8 0.00B 0.00B ~ (all equal)
name old allocs/op new allocs/op delta
Inode/no_hard_links-8 1.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10)
Inode/hard_link-8 0.00 0.00 ~ (all equal)
|
||
|---|---|---|
| .. | ||
| archiver | ||
| backend | ||
| bloblru | ||
| cache | ||
| checker | ||
| crypto | ||
| debug | ||
| dump | ||
| errors | ||
| filter | ||
| fs | ||
| fuse | ||
| hashing | ||
| index | ||
| migrations | ||
| options | ||
| pack | ||
| repository | ||
| restic | ||
| restorer | ||
| selfupdate | ||
| test | ||
| textfile | ||
| ui | ||
| walker | ||