Commit ab5a3e5
committed
pack-objects: use 64-bit name hash
This change takes the "uniform" full-name hash and the "locality-preserving"
name hash and combines them into a single 64-bit name hash. This increases
the memory load of the packing process (by four bytes per object).
By sorting by name-hash and then full-name-hash, this should put objects
with same name-hash close, but broken down within that via the
full-name-hash. However, this is not demonstrating significant differences
in the size of the pack-files.
Test HEAD~1 HEAD
------------------------------------------------------------------------------------------------
5313.2: thin pack 0.08(0.06+0.01) 0.08(0.06+0.01) +0.0%
5313.3: thin pack size 852.7K 852.7K +0.0%
5313.4: thin pack with --full-name-hash 0.03(0.01+0.01) 0.03(0.01+0.01) +0.0%
5313.5: thin pack size with --full-name-hash 401.9K 401.9K +0.0%
5313.6: big pack 1.02(1.87+0.14) 1.11(1.91+0.20) +8.8%
5313.7: big pack size 58.5M 58.5M -0.0%
5313.8: big pack with --full-name-hash 0.91(1.46+0.12) 1.00(1.52+0.16) +9.9%
5313.9: big pack size with --full-name-hash 58.0M 58.0M +0.0%
5313.10: repack 104.65(391.84+12.31) 105.51(383.09+14.05) +0.8%
5313.11: repack size 438.6M 438.4M -0.1%
5313.12: repack with --full-name-hash 22.71(74.94+6.08) 22.91(74.73+6.16) +0.9%
5313.13: repack size with --full-name-hash 167.6M 168.3M +0.4%
Signed-off-by: Derrick Stolee <[email protected]>1 parent 0ec4b66 commit ab5a3e5
2 files changed
+6
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
271 | | - | |
| 271 | + | |
272 | 272 | | |
273 | 273 | | |
274 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
275 | 278 | | |
276 | 279 | | |
277 | 280 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| |||
0 commit comments