Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Mar 2005 23:27:46 +0000 (UTC)
From:      Nate Lawson <njl@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/fs/msdosfs msdosfs_conv.c
Message-ID:  <200503112327.j2BNRkGq052260@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
njl         2005-03-11 23:27:46 UTC

  FreeBSD src repository

  Modified files:
    sys/fs/msdosfs       msdosfs_conv.c 
  Log:
  The mbnambuf routines combine multiple substrings into a single
  long filename.  Each substring is indexed by the windows ID, a
  sequential one-based value.  The previous code was extremely slow,
  doing a malloc/strcpy/free for each substring.
  
  This code optimizes these routines with this in mind, using the ID
  to index into a single array and concatenating each WIN_CHARS chunk
  at once.  (The last chunk is variable-length.)
  
  This code has been tested as working on an FS with difficult filename
  sizes (255, 13, 26, etc.)  It gives a 77.1% decrease in profiled
  time (total across all functions) and a 73.7% decrease in wall time.
  Test was "ls -laR > /dev/null".
  
  Per-function time savings:
  mbnambuf_init:  -90.7%
  mbnambuf_write: -18.7%
  mbnambuf_flush: -67.1%
  
  MFC after:      1 month
  
  Revision  Changes    Path
  1.40      +42 -37    src/sys/fs/msdosfs/msdosfs_conv.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503112327.j2BNRkGq052260>