When hammer is installed with multiple plugins the startup slows down. Profiling showed we're loosing quite some time in fast-gettext's initialisation and translation methods. It loads all available .mo files for all languages in all plugins regardless what language is used. Another inefficiency lies in multidomain translations we're using (one domain per plugin). For each translation fast-gettext iterates over all domains until it finds the key.
Simple measurement for hammer with plugins:
Standard hammer configuration on ruby 1.9.3:
time hammer --version > /dev/null
With only one translation domain:
time hammer --help > /dev/null
The solution seems to be to create custom fast-gettext translation repository that would merge the keys at load time to get rid of the search loops in each translation. Loading the .mo files lazily might also improve the performance.
Created from redmine issue http://projects.theforeman.org/issues/14092
Upstream bug assigned to firstname.lastname@example.org
Moving to POST since upstream bug http://projects.theforeman.org/issues/14092 has been closed
I see this as delivered but not installed. Tomas..is the tfm version good enough?
================================================= N/S matched: fast_gettext =================================================
rubygem-fast_gettext.noarch : A simple, fast, memory-efficient and threadsafe implementation of GetText
tfm-rubygem-fast_gettext.noarch : A simple, fast, memory-efficient and threadsafe implementation of GetText
Name and summary matches only, use "search all" for everything.
[vagrant@sat63-qa-rhel7 ~]$ rpm -qa | grep fast_gettext
[vagrant@sat63-qa-rhel7 ~]$ yum install rubygem-f
Yes, anything higher than 1.2.0 is fine, so we should be good with
Discussed offline with Tomas, verified the presence of tfm-rubygem-fast_gettext-1.4.1-1.el7sat.noarch in Sat 6.3 snap 29
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA.
> > For information on the advisory, and where to find the updated files, follow the link below.
> > If the solution does not work for you, open a new bug report.
> > https://access.redhat.com/errata/RHSA-2018:0336