[Koha-bugs] [Bug 20975] Improve auto escaping performance

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Fri Jul 13 12:31:56 CEST 2018


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=20975

Julian Maurice <julian.maurice at biblibre.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |julian.maurice at biblibre.com

--- Comment #8 from Julian Maurice <julian.maurice at biblibre.com> ---
(In reply to Jonathan Druart from comment #7)
> The performances are good, I guess it helps to avoid 1 object creation
> (::Escaped::HTML) by variable.

It's actually worse than that. Template::Stash::AutoEscaping creates an object
for each string concatenation, and Template::Toolkit concatenates stuff to its
internal buffer all the time.
I ran benchmark_AutoEscaping.pl (using Template::Stash::AutoEscaping) with
NYTProf and it spends most of the time in
Template::Stash::AutoEscaping::Escaped::Base::concat (63% of total time) where
it creates 50000 new objects. But apparently most of the time here is spent
doing simple string concatenation.
(not so) fun fact: the "HTML-escaping" process represents less than 3% of
concat in terms of time spent.

I don't know how (or if) this can be improved, but I think the time loss is not
acceptable, and unless we find a better solution we should keep using html
filter manually (and probably add a rule in coding guidelines)

Note that we can use TT filters as blocks, like this:

[% FILTER html %]
  [% this_will_be_escaped %] and [% this.will(be).escaped | too %]
[% END %]

Maybe this could reduce the hassle of writing "|html" everywhere

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list