Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
trunk
-
None
Description
(I've tried to send this patch to dev@, and user@ several weeks ago. None of them seem to have made it to the lists. My best guess is they've ended up in some moderator's /dev/null.) Analyzing performance problems during the svn checkout of a project containing several large directories--one with more than 1500 entries--, we've discovered that libsvn_subr/io.c::svn_io_open_uniquely_named() is the culprit: When creating temporary files in the prop-base subdirectory, the current implementation leads to a high number of open() calls, proportional to the square of the number of entries per directory. Most of these open() calls fail with EEXIST. Using a different scheme that essentially remembers (part of) the last created temporary filename, most of these unsuccessful calls can be avoided. (For the project in question, this reduced the total amount of syscalls per checkout by almost 50 per cent, and significantly improved checkout speed, especially on NFS filesystems where open() is relatively expensive.)
Original issue reported by dkobras
Attachments
Attachments
Issue Links
- duplicates
-
SVN-3719 Extremely slow checkout on Windows
- Closed