Re: r1344347 - stream buffering in config_file.c
On 3 April 2014 22:15, Julian Foad <julianfoad_at_btopenworld.com> wrote:
>>> URL: http://svn.apache.org/viewvc?rev=1344347&view=rev
>>> 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.
>>> * subversion/libsvn_subr/config_file.c
>>> (parse_context_t): Add buffer and position variables. Use EOF as no
>>> ungetc var.
>>> Modified: subversion/trunk/subversion/libsvn_subr/config_file.c
>>> + /* Parser buffer for getc() to avoid call overhead into several libraries
>>> + for every character */
>>> + char parser_buffer[SVN_STREAM_CHUNK_SIZE];
> This commit implements buffering of a generic stream, directly in the config file parser. Would it
> not be better to implement buffering of a generic stream as a generic module?
This commit improved performance over buffer APR file, so switching to
back to buffered stream will degrade performance again.
Config parser also use parser_buffer knowledge to use extremle
optimized memchr() to find end of line to skip comment lines. Config
parsers used very often, that's because it should be optimized.
Received on 2014-04-04 09:33:02 CEST
This is an archived mail posted to the Subversion Dev