[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1344347 - /subversion/trunk/subversion/libsvn_subr/config_file.c

From: Greg Stein <gstein_at_gmail.com>
Date: Thu, 31 May 2012 03:49:27 -0400

On Thu, May 31, 2012 at 3:41 AM, Ivan Zhakov <ivan_at_visualsvn.com> wrote:
> On Wed, May 30, 2012 at 8:52 PM,  <rhuijben_at_apache.org> wrote:
>> Author: rhuijben
>> Date: Wed May 30 16:52:36 2012
>> New Revision: 1344347
>>
>> URL: http://svn.apache.org/viewvc?rev=1344347&view=rev
>> Log:
>> Remove about 15% of the cpu overhead of svnserve and httpd while running the
>> test suite by introducing a very simple parser buffer in the config file parser
>> code.
>>
>> The nice clean stream translation code had an 7 times overhead on this very
>> performance critical code path, while clients of svnserve and httpd were
>> waiting. (Before this patch the this code path used 22% of the cpu time,
>> now just 3%)
>
> Great improvement, but it may be worth to factor out this code to
> special stream like svn_stream_buffered().

When I saw this change, my first thought was, "wtf? just read the
whole damned file into memory". (I just haven't had time to look into
this to provide some actual advice beyond amazement)

Config files are NOT 100 megabytes. Read the damned things into memory
in one giant piece. I/O is reduced, memory is available. Everybody
wins.

-g
Received on 2012-05-31 09:50:01 CEST

This is an archived mail posted to the Subversion Dev mailing list.