« Return to Thread: SVNKit slowness - what am I missing?

Re: SVNKit slowness - what am I missing?

by Alexander Kitaev-3 :: Rate this Message:

Reply to Author | View in Thread

Hello Andy,

What version of JDK do you use? On which platform? Is it the same as
before? Does running two different versions of SVNKit on the same
computer clearly demonstrates mentioned difference in performance?

Do you have a chance to run your program in a profiler (e.g. yourkit)
and send us a profiler's dump? This could help to find the reason of the
problem!

Alexander Kitaev,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!

Andy Cohen wrote:

> Hi! I've recently updated a fairly large Java program which uses
> Subversion to selectively merge revision-ranges from one branch to
> another. In its original version, this program directly invoked the svn
> command-line programs, and parsed their stderr and stdout streams. The
> new version uses SVNKit instead, and is much simpler, more maintainable,
> and more reliable.
>
> The only problem is, it takes about 10 times as long to run as the
> previous version.
>
> I've been scouring the Internet and the svnkit-users archives, and I've
> tried the following things in an effort to improve the program's
> performance:
>
>    1) I put the JNA library in the classpath.
>    2) I put the native jnidispatch library for solaris/x86 in
>       the classpath.
>    3) I disabled versioned symbolic links support in SVNKit, by
>       including "-Dsvnkit.symlinks=false" on the command line.
>    4) I downloaded version 1.3.0 of SVNKit "with_jna".
>    5) I put "svnkit-javahl.jar" in the classpath.
>
> None of these things has helped, and I suspect I'm just not setting
> something up right. I've included what I think are the relevant details
> below. I'm really hoping that I've made some stupid, obvious error or
> omission - have I?
>
> Thanks in advance for any help.
>
>    Andy Cohen
>
> ==============================================================
>
> Here's my classpath (line-wrapped for readability):
>
>    CLASSPATH=
>    /myDir/hooks
>    :/myDir/hooks/lib/svnkit.jar
>    :/myDir/hooks/lib/svnkit-javahl.jar
>    :/myDir/hooks/lib/jna.jar
>    :/myDir/hooks/lib/sunos-x86.jar
>
> Here's the command I use to invoke my program (again, line-wrapped for
> readability):
>
>    $JAVA
>    -Dsvnkit.symlinks=false
>    -classpath $CLASSPATH
>    $MY_MAIN_CLASS
>
> Here's the Java code that sets up my SVNKit:
>
>  private void initSvnKit()
>  {
>    // This code snippet will prevent SVNKit from automatically upgrading
>    // any working copy it touches. This code is copied from:
>    //
>    //  
> https://wiki.svnkit.com/SVNKit_FAQ#Q.3ACanthecurrentSVNKitversionbeforcedtocreatepre-1.5formatworkingcopies.3F
>
>    //
>    SVNAdminAreaFactory.setSelector
>      (new ISVNAdminAreaFactorySelector()
>        {
>          public Collection getEnabledFactories
>            (File        path,
>             Collection  factories,
>             boolean     writeAccess)
>          throws SVNException
>          {
>            Collection enabledFactories = new TreeSet();
>            for (Iterator factoriesIter = factories.iterator();
>                 factoriesIter.hasNext();
>                 )
>            {
>              SVNAdminAreaFactory factory
>                = (SVNAdminAreaFactory)factoriesIter.next();
>              int version = factory.getSupportedVersion();
>              if (version == SVNAdminAreaFactory.WC_FORMAT_13
>                  || version == SVNAdminAreaFactory.WC_FORMAT_14)
>              {
>                enabledFactories.add(factory);
>              }
>           }
>           return enabledFactories;
>         }
>       }
>     );
>
>        SVNRepositoryFactoryImpl.setup();
>    FSRepositoryFactory.setup();
>      this.svnClientManager = SVNClientManager.newInstance();
>    this.svnUpdateClient = svnClientManager.getUpdateClient();
>    this.svnAdminClient = svnClientManager.getAdminClient();
> //    this.svnChangelistClient = svnClientManager.getChangelistClient();
>    this.svnCommitClient = svnClientManager.getCommitClient();
> //    this.svnCopyClient = svnClientManager.getCopyClient();
>    this.svnDiffClient = svnClientManager.getDiffClient();
>    this.svnLogClient = svnClientManager.getLogClient();
>    this.svnLookClient = svnClientManager.getLookClient();
> //    this.svnMoveClient = svnClientManager.getMoveClient();
> //    this.svnStatusClient = svnClientManager.getStatusClient();
>    this.svnWCClient = svnClientManager.getWCClient();
>  }
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> For additional commands, e-mail: svnkit-users-help@...
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...

 « Return to Thread: SVNKit slowness - what am I missing?