On 11/4/06, Brian Buesker <bbuesker@qualcomm.com> wrote:
> I was doing some benchmarking to compare the performance of SVN on
> different hardware, with different server versions and access modes (ie.
> https, svn, or svn+ssh), and I ran across a behavior with the perl
> bindings which I found somewhat strange. Essentially, the perl script
> that is attached just continuously loops doing an svn ls operation using
> the perl bindings. What I noticed is that when using svn, there seems to
> be an svnserve child process for every ls operation. These processes
> stay around until the script terminates. When using svn+ssh, there is an
> ssh-tunneled svnserve process for every ls operation.
>
> Why is it that every operation creates a new connection or tunnel? I
> could see if the perl bindings weren't smart enough to cache connections
> where a new connection might be used each time, but it seems inefficient
> to just leave the previous connections open until the perl process
> terminates. This behavior seems to occur with other operations as well
> (such as mkdir).
Connections are cleaned up when you clean up the pool in which the
connection is created. The perl bindings provide a default pool which
is destructed at the end of the process life, which is why you're
seeing cleanup at program end.
Use your own pool, or create/cleanup default pools in logical
locations and you should see the number of connections drop.
bye,
Erik.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sat Nov 4 16:33:53 2006