The C implementation of the JS minification gives speedups between 6
and 55 times faster than the regex-based Python port, depending on
how compressed the input it (which is what our default implementation
does).
This is measurable when generating compiled assets bundle from scratch,
e.g. after installing/updating modules or source code.
As an illustration, the minification of a 2MB JS bundle can be 50x
faster:
```py
import rjsmin
from odoo.addons.base.models.assetsbundle import rjsmin as rjsm
js_source = open("web.assets_common_lazy.js").read() # 2MB JS
%timeit rjsm(js_source)
# -> 339 ms ± 495 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
%timeit rjsmin.jsmin(js_source)
# -> 6.88 ms ± 213 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
```
It's also a drop-in replacement, as long as you rjsmin 1.1.0 or better
is available (to support format strings properly, a.o.).
See also the documentation of rjsmin: http://opensource.perlig.de/rjsmin/
closes odoo/odoo#104283
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
70 lines
1.9 KiB
Plaintext
70 lines
1.9 KiB
Plaintext
# Please note that this Dockerfile is used for testing nightly builds and should
|
|
# not be used to deploy Odoo
|
|
FROM fedora:36
|
|
MAINTAINER Odoo S.A. <info@odoo.com>
|
|
|
|
# Dependencies and postgres
|
|
RUN dnf update -d 0 -e 0 -y && \
|
|
dnf install -d 0 -e 0 \
|
|
createrepo \
|
|
libsass \
|
|
postgresql \
|
|
postgresql-contrib \
|
|
postgresql-devel \
|
|
postgresql-libs \
|
|
postgresql-server \
|
|
python3-PyPDF2 \
|
|
python3-cryptography \
|
|
python3-babel \
|
|
python3-chardet \
|
|
python3-dateutil \
|
|
python3-decorator \
|
|
python3-devel \
|
|
python3-docutils \
|
|
python3-freezegun \
|
|
python3-geoip2 \
|
|
python3-gevent \
|
|
python3-greenlet \
|
|
python3-idna \
|
|
python3-jinja2 \
|
|
python3-libsass \
|
|
python3-lxml \
|
|
python3-markupsafe \
|
|
python3-mock \
|
|
python3-num2words \
|
|
python3-ofxparse \
|
|
python3-passlib \
|
|
python3-pillow \
|
|
python3-polib \
|
|
python3-psutil \
|
|
python3-psycopg2 \
|
|
python3-pydot \
|
|
python3-pyldap \
|
|
python3-pyOpenSSL \
|
|
python3-pyserial \
|
|
python3-pytz \
|
|
python3-pyusb \
|
|
python3-qrcode \
|
|
python3-reportlab \
|
|
python3-requests \
|
|
python3-rjsmin \
|
|
python3-six \
|
|
python3-stdnum \
|
|
python3-vobject \
|
|
python3-werkzeug \
|
|
python3-wheel \
|
|
python3-xlrd \
|
|
python3-xlsxwriter \
|
|
python3-xlwt \
|
|
python3-zeep \
|
|
rpmdevtools -y && \
|
|
dnf clean all
|
|
|
|
# Postgres configuration
|
|
RUN mkdir -p /var/lib/postgres/data
|
|
RUN chown -R postgres:postgres /var/lib/postgres/data
|
|
RUN su postgres -c "initdb -D /var/lib/postgres/data -E UTF-8"
|
|
RUN cp /usr/share/pgsql/postgresql.conf.sample /var/lib/postgres/data/postgresql.conf
|
|
|
|
RUN echo "PS1=\"[\u@nightly-tests] # \"" > ~/.bashrc
|