[PATCH/RFC v2 0/7] git checkout: more cleanups, optimisation, less lstat() calls

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

 



Changes since v1

--- patch 1/7 ---
Kept the "match_len >= cache.len" trick only inside the
longest_match_lstat_cache() function.  Also removed the arguments to
reset_lstat_cache()

--- patch 2/7 ---
Applied all comments from Junio

--- patch 3/7 ---
Kept long format strings in printf() calls, even if source lines get
longer than 80 chars.  The patch touch less source lines because of
this.

--- patch 4/7 ---
Added sanity check to the if-test under which fstat() is called.

--- patch 5/7 ---
Updated commit log message

--- patch 7/7 ---
New patch which reduces the number of rmdir() calls significantly.
When tested with 'git chekcout -q my-v2.6.27' (checkout from Linux
v2.6.25 to v2.6.27), the numbers look like this before this patch:

rmdir          4532   3.314% OK:   174 NOT:  4358   0.263268 sec   58 usec/call
    strings    4532 tot    354 uniq  12.802 /uniq   0.263268 sec   58 usec/call
    errors     4358 tot    347 uniq  12.559 /uniq   0.249116 sec   57 usec/call
                233   5.141% OK:     1 NOT:   232  "include/asm-powerpc"
                187   4.126% OK:     1 NOT:   186  "include/asm-sh"
                172   3.795% OK:     0 NOT:   172  "include/asm-arm"
                169   3.729% OK:     1 NOT:   168  "include/asm-sparc64"
                161   3.553% OK:     1 NOT:   160  "include/asm-sparc"
                144   3.177% OK:     1 NOT:   143  "include/asm-ia64"
                143   3.155% OK:     1 NOT:   142  "include/asm-m68knommu"
                133   2.935% OK:     1 NOT:   132  "include/asm-alpha"
                126   2.780% OK:     1 NOT:   125  "include/asm-s390"
                122   2.692% OK:     1 NOT:   121  "include/asm-v850"

Notice the nice change in the top 10 list after this patch:

rmdir           331   0.255% OK:   174 NOT:   157   0.033435 sec  101 usec/call
    strings     331 tot    331 uniq   1.000 /uniq   0.033435 sec  101 usec/call
    errors      157 tot    157 uniq   1.000 /uniq   0.016300 sec  104 usec/call
                  1   0.302% OK:     0 NOT:     1  "Documentation"
                  1   0.302% OK:     0 NOT:     1  "Documentation/filesystems/configfs"
                  1   0.302% OK:     0 NOT:     1  "Documentation/firmware_class"
                  1   0.302% OK:     1 NOT:     0  "Documentation/hrtimer"
                  1   0.302% OK:     1 NOT:     0  "Documentation/hrtimers"
                  1   0.302% OK:     0 NOT:     1  "Documentation/i2c/busses"
                  1   0.302% OK:     1 NOT:     0  "Documentation/i386"
                  1   0.302% OK:     0 NOT:     1  "Documentation/networking"
                  1   0.302% OK:     0 NOT:     1  "Documentation/power"
                  1   0.302% OK:     0 NOT:     1  "Documentation/powerpc"



Kjetil Barvik (7):
  symlinks.c: small cleanup and optimisation
  remove some memcpy() and strchr() calls inside create_directories()
  cleanup of write_entry() in entry.c
  write_entry(): use fstat() instead of lstat() when file is open
  combine-diff.c: remove a call to fstat() inside show_patch_diff()
  lstat_cache(): print a warning if doing ping-pong between cache types
  unpack-trees.c: introduce schedule_dir_for_removal()

 combine-diff.c |    4 +--
 entry.c        |  106 +++++++++++++++++++++++++++-----------------------------
 symlinks.c     |   67 +++++++++++++++++++++++++----------
 unpack-trees.c |   97 ++++++++++++++++++++++++++++++++++++++-------------
 4 files changed, 172 insertions(+), 102 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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