On Sun, Jan 06 2019, René Scharfe wrote: Thanks. I haven't done my own performance testing but at a glance this looks good. > The cache is used for collision checks for the log placeholders %h, %t > and %p, and we can see the change speeding them up in a repository with > ca. 100 objects per subdirectory: > > $ git count-objects > 26733 objects, 68808 kilobytes > > Test HEAD^ HEAD > -------------------------------------------------------------------- > 4205.1: log with %H 0.51(0.47+0.04) 0.51(0.49+0.02) +0.0% > 4205.2: log with %h 0.84(0.82+0.02) 0.60(0.57+0.03) -28.6% > 4205.3: log with %T 0.53(0.49+0.04) 0.52(0.48+0.03) -1.9% > 4205.4: log with %t 0.84(0.80+0.04) 0.60(0.59+0.01) -28.6% > 4205.5: log with %P 0.52(0.48+0.03) 0.51(0.50+0.01) -1.9% > 4205.6: log with %p 0.85(0.78+0.06) 0.61(0.56+0.05) -28.2% > 4205.7: log with %h-%h-%h 0.96(0.92+0.03) 0.69(0.64+0.04) -28.1% Can you elaborate on the test setup required to get to the point where you got these numbers for subsequent comparison, i.e. how you generated the approx 100 objects per dir, what OS/version & storage type etc.