Svn 大型变更集对Subversion有什么影响?

Svn 大型变更集对Subversion有什么影响?,svn,fsfs,Svn,Fsfs,我最近向我的svn存储库提交了一个大型变更集(~7000个文件)。这7000个文件仅占使用FSFS后端并与svnserve 1.7一起提供服务的存储库总大小的5%。从那以后,在这次大型提交之后,签出修订需要花费20倍的时间 Subversion在内部做了什么导致了减速?有没有办法解决这个问题 更新 在手动签出错误版本时,我可以看到签出开始减慢的点。签出会很快开始将文件添加到工作副本中(您无法足够快地读取tty输出)。一旦签出到达某个目录(错误修订会将2000个文件添加到此目录(其中已包含1700

我最近向我的svn存储库提交了一个大型变更集(~7000个文件)。这7000个文件仅占使用FSFS后端并与svnserve 1.7一起提供服务的存储库总大小的5%。从那以后,在这次大型提交之后,签出修订需要花费20倍的时间

Subversion在内部做了什么导致了减速?有没有办法解决这个问题

更新
  • 在手动签出错误版本时,我可以看到签出开始减慢的点。签出会很快开始将文件添加到工作副本中(您无法足够快地读取tty输出)。一旦签出到达某个目录(错误修订会将2000个文件添加到此目录(其中已包含17000个文件)),则在签出的其余部分,将文件添加到工作副本的速度会显著降低(例如每秒5个文件)。在坏版本之前的修订会一直非常快速地将文件添加到工作副本中。此目录中的每个文件约为1KB

  • 我为1.6版和1.7版编译了自己的
    svnserve
    ,使用了调试和gprof,这样我们就可以对正在发生的事情有一些了解。有人进一步指出,svnadmin 1.7中与内存缓存相关的一些增强实际上在本次修订中扼杀了它即使用SVN服务于存储库1.6可以解决此问题。我猜这是在中讨论的内存缓存,它基于在错误版本(以及之前的版本)的gprof检出时间配置文件。在rBAD中,某些svn FSF到内存缓存函数的调用量大约是rGOOD中的2000000000倍


  • 是的,SVN v1.7版推出了许多性能增强功能。
    但这是基于一些一般性的假设。对于极端情况,如单次提交中的大量文件或具有巨大大小的文件,需要调整relase notes中指定的预设参数。

    文件大小或文件数量中的总体大小?我是指文件数量。是的,我想是这样,但值得澄清。我猜一个包含19000个文件的目录可能有点大。您可以尝试转储和加载Subversion数据库。我不确定缓存调用是否会影响性能。它可能会在那里花费很多时间,但可能会为您节省一些昂贵的操作费用。奥托,可能是个虫子。您是否在[Subversion dev list]上提出了此问题(邮件收件人:dev@subversion.apache.org)? 也许值得一试。我相信Stefan Fuhrmann实现了缓存特性,他非常关心性能。