I discovered, this morning, that a large part of the performance issues I've been having with SVN are related to my working copy being located under an NTFS reparse point (http://en.wikipedia.org/wiki/NTFS_reparse_point). C:\ is root drive, C:\Foo is a reparse point pointing to another partition, though still a local physical drive. Given that SmartSVN is aware of the difference between network and local drives, I'm hypothesizing that there's a more complex underlying filesystem library than java.io.File before operations are handed over to the OS (Win2K8R2, Win7, Win8). My current theory is that something in SmartSVN is mistakenly detecting the working copy as being on a network drive (confusing NTFS reparse points and network drives) and degrading performance. I would absolutely be happy to help debug this performance issue down to the level of writing and running benchmarks, and even submitting a patch if it's an open source library. Can someone help identify what library (SVNKit, JNA, etc) I should test? If not I'll dig into SVNKit myself at some point, I suppose... The alternative theory is that the overhead of windows file create() calls added by the NTFS reparse point (see http://forum.sysinternals.com/question-about-how-windows-server-2003-handles-dis_topic22263_post117268.html?KW=reparse#117268) is noticeable because of the vast number of files being accessed during e.g. local refresh. I'm happy to believe this, but it seems less likely as tools other than SmartSVN, which scan large parts of the working copy, have similar performance whether the files are accessed through a local drive letter or the reparse point.
SmartSVN Performance & NTFS Reparse Points
1-1 of 1
Reply to this discussion
You cannot edit posts or make replies: You should be logged in before you can post.