Re: [PATCH v2 0/4] Speed up unpack_trees()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 7/31/2018 12:50 PM, Ben Peart wrote:


On 7/31/2018 11:31 AM, Duy Nguyen wrote:


In the performance game of whack-a-mole, that call to repair cache-tree
is now looking quite expensive...

Yeah and I think we can whack that mole too. I did some measurement.
Best case possible, we just need to scan through two indexes (one with
many good cache-tree, one with no cache-tree), compare and copy
cache-tree over. The scanning takes like 1% time of current repair
step and I suspect it's the hashing that takes most of the time. Of
course real world won't have such nice numbers, but I guess we could
maybe half cache-tree update/repair time.


I have some great profiling tools available so will take a look at this next and see exactly where the time is being spent.

Good instincts. In cache_tree_update, the heavy hitter is definitely hash_object_file followed by has_object_file.

Name                               	Inc %	     Inc
+ git!cache_tree_update            	 12.4	   4,935
|+ git!update_one                  	 11.8	   4,706
| + git!update_one                 	 11.8	   4,706
|  + git!hash_object_file          	  6.1	   2,406
|  + git!has_object_file           	  2.0	     813
|  + OTHER <<vcruntime140d!strchr>>	  0.5	     203
|  + git!strbuf_addf               	  0.4	     155
|  + git!strbuf_release            	  0.4	     143
|  + git!strbuf_add                	  0.3	     121
|  + OTHER <<vcruntime140d!memcmp>>	  0.2	      93
|  + git!strbuf_grow               	  0.1	      25



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux