Re: [PATCH 4/3] gitweb: Fix fallback mode of to_utf8 subroutine
flat view
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:52:40
Jakub Narebski wrote:
e5d3de5 (gitweb: use Perl built-in utf8 function for UTF-8 decoding.,
2007-12-04) was meant to make gitweb faster by using Perl's internals
(see subsection "Messing with Perl's Internals" in Encode(3pm) manpage)
Simple benchmark confirms that (old = 00f429a, new = this version);
note that it is synthetic benchmark of standalone subroutines, not
of gitweb itself
old new
old -- -65%
new 189% --
Nb. that was about operations / second (higher is better):
Rate old new
old 2067/s -- -65%
new 5863/s 184% --
Or in slightly different benchmark (more smaller lines):
Rate old new
old 277/s -- -73%
new 1021/s 268% --
old$ time ./t9500-gitweb-standalone-no-errors.sh >/dev/null
real 1m16.788s
user 1m0.908s
sys 0m14.033s
user+sys 1m14.941s
new$ time ./t9500-gitweb-standalone-no-errors.sh >/dev/null
real 1m12.216s
user 0m57.300s
sys 0m13.329s
user+sys 1m10.639s
Though such benchmarks should have been a part of e5d3de5.
P.S. I started to get strange errors
XML Parsing Error: xml processing instruction not at start of external entity
Location: http://localhost/cgi-bin/gitweb/gitweb.cgi
Line Number 37, Column 1:
<?xml version="1.0" encoding="utf-8"?>
^
while "show source" shows that '<?xml version="1.0" encoding="utf-8"?>'
is the first line. WTF?!?
P.P.S. Now I am getting errors when running gitweb, but only in some
cases (via mod_cgi not as standalone script, only when using lynx),
namely it looks like it falls back to 'latin1' when doing content
which is valid UTF-8.
Will investigate.
--
Jakub Narebski
Poland