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>