RE: svn commit: r1593015 - in /subversion/trunk/subversion/libsvn_fs_fs: fs.c fs.h
From: Bert Huijben <bert_at_qqmail.nl>
Date: Thu, 15 May 2014 14:43:32 +0200
> -----Original Message-----
Not that even after a week the OpenBSD tests are still failing.
And I'm not sure if this is really the right way to fix such a corner case on Windows.
Why should we do extra work on Windows which has obvious performance side effects?
Windows does check per handle, which is really what we need here. We add the missing checks for platforms that don't check, but adding a check on platforms that don't need it really make sense.
I'll remind you of this example the next time you call the Windows implementation slow.
Sure, Windows is slow if you first want to make it behave exactly like *nix and then add another layer for the features missing on *nix.
Same thing as we used to do for obtaining file status... Read the directory; and then for every node read the directory again because we assume every system uses i-nodes to hold other things.
These 'performance optimizations' you have been applying over the last few weeks are slowed Subversion down by +- 2-5% on my test environment when I measured the result about a week ago.
Whatever runs faster on the combination of your huge system, your specific compiler, your os and your multi gbit network is not necessarily whatever all others are using.
And optimizing for most of those specific scenarios is a task for the OS, compiler, platform libraries etc. Not necessarily always Subversion itself. (E.g. in the recent cases where code was added to support more memory for apr compiled in a nonstandard configuration)
This is an archived mail posted to the Subversion Dev mailing list.