This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
svn speed traversing slow filesystems
- From: "Kaveh R. Ghazi" <ghazi at caipclassic dot rutgers dot edu>
- To: dberlin at dberlin dot org
- Cc: gcc at gcc dot gnu dot org
- Date: Sat, 19 Nov 2005 10:14:18 -0500 (EST)
- Subject: svn speed traversing slow filesystems
Hi Dan,
(BTW, sorry for the reposted messages.)
While I was waiting for some svn commands to finish (cleanup, update)
on my solaris2.7 box, which has a slow filesystem, I happened to run
truss -p <svn-pid> out of curiosity to see what was taking so long.
Turns out that svn does many file operations on long pathnames. I
recall that gnu find and other gnu utilities that do directory
traversal got jumbo speedups by changing to the directory and running
the file ops on "./filename" without long path prefixes.
Could a future svn version get the same speedup? I'm running:
svn, version 1.3.0 (Release Candidate 2)
Thanks,
--Kaveh
PS: Are we still at RC2?
PPS: Here's sample output from truss that I'm talking about:
lstat("gcc/testsuite/gcc.dg/vect/vect-63.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-46.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-46.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-46.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-82.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-82.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-82.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-29.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-29.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-29.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-65.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-65.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-65.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-48.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-48.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-48.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-67.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-67.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-67.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-86.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-86.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-86.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-69.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-69.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-69.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-88.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-88.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-88.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-83_64.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-83_64.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-83_64.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-11.c.svn-work", 0xFFBEF1F8) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/prop-base/vect-11.c.svn-base", 0xFFBEF1F8) = 0
lstat("gcc/testsuite/gcc.dg/vect/vect-11.c", 0xFFBEE900) = 0
stat("gcc/testsuite/gcc.dg/vect/.svn/props/vect-30.c.svn-work", 0xFFBEF1F8) = 0
--
Kaveh R. Ghazi ghazi@caip.rutgers.edu