Skip to content
This repository was archived by the owner on Jun 24, 2024. It is now read-only.

Commit cee911a

Browse files
authored
[Perf] Use fftw3 & orc. (#17)
1 parent 93f9238 commit cee911a

File tree

2 files changed

+82
-41
lines changed

2 files changed

+82
-41
lines changed

Dockerfile

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ ENV VIPS_VERSION=$VIPS_VERSION
88
ENV PATH=/opt/bin:$PATH
99
ENV LD_LIBRARY_PATH=/opt/lib:/opt/lib64:$LD_LIBRARY_PATH
1010
ENV PKG_CONFIG_PATH=/opt/lib/pkgconfig:/opt/lib64/pkgconfig
11+
ENV CFLAGS="-fexceptions -Wall -O3"
12+
ENV CXXFLAGS="${CFLAGS}"
1113

1214
# Setup Some Dirs
1315
#
@@ -74,6 +76,33 @@ RUN git clone https://github.com/ImageOptim/libimagequant.git && \
7476
RUN cp -a /opt/lib/libimagequant.so* /build/share/lib/ && \
7577
cp -a /opt/include/libimagequant.h /build/share/include/
7678

79+
# Install libfftw
80+
#
81+
RUN curl -L http://www.fftw.org/fftw-3.3.8.tar.gz > fftw-3.3.8.tar.gz && \
82+
tar -xf fftw-3.3.8.tar.gz && \
83+
cd ./fftw-3.3.8 && \
84+
./configure \
85+
--prefix=/opt \
86+
--enable-shared \
87+
--disable-static \
88+
--enable-threads \
89+
--enable-sse2 \
90+
--enable-avx && \
91+
make && \
92+
make install
93+
94+
RUN cp -a /opt/lib/libfftw3* /build/share/lib/
95+
96+
# Install liborc (perf)
97+
#
98+
RUN curl -L https://gstreamer.freedesktop.org/data/src/orc/orc-0.4.26.tar.xz > orc-0.4.26.tar.xz && \
99+
tar -xf orc-0.4.26.tar.xz && \
100+
cd orc-0.4.26 && \
101+
./configure --prefix=/opt && \
102+
make && \
103+
make install
104+
RUN cp -a /opt/lib/liborc-0.4.so* /build/share/lib/
105+
77106
# Install libvips. Primary deps https://libvips.github.io/libvips/install.html
78107
#
79108
RUN yum install -y \

README.md

Lines changed: 53 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -33,49 +33,61 @@ Lastly, we were happy to find that `glib` and `gobject` were already installed a
3333

3434
## Contents
3535

36-
Current size of the layer's un-compressed contents is around `21MB` in size. Contents include:
36+
Current size of the layer's un-compressed contents is around `28MB` in size. Contents include:
3737

3838
```shell
3939
$ ls -lAGp /opt/lib
40-
lrwxrwxrwx 1 root 18 Sep 11 01:56 libexpat.so -> libexpat.so.1.6.11
41-
lrwxrwxrwx 1 root 18 Sep 11 01:56 libexpat.so.1 -> libexpat.so.1.6.11
42-
-rwxr-xr-x 1 root 555824 Sep 11 01:56 libexpat.so.1.6.11
43-
lrwxrwxrwx 1 root 11 Sep 11 02:00 libffi.so -> libffi.so.7
44-
lrwxrwxrwx 1 root 15 Sep 11 02:00 libffi.so.7 -> libffi.so.7.1.0
45-
-rwxr-xr-x 1 root 161344 Sep 11 01:59 libffi.so.7.1.0
46-
lrwxrwxrwx 1 root 11 Sep 11 01:57 libgif.so -> libgif.so.7
47-
lrwxrwxrwx 1 root 15 Sep 11 01:57 libgif.so.7 -> libgif.so.7.2.0
48-
-rwxr-xr-x 1 root 36568 Sep 11 01:57 libgif.so.7.2.0
49-
lrwxrwxrwx 1 root 15 Sep 11 02:00 libgio-2.0.so -> libgio-2.0.so.0
50-
lrwxrwxrwx 1 root 22 Sep 11 02:00 libgio-2.0.so.0 -> libgio-2.0.so.0.6400.2
51-
-rwxr-xr-x 1 root 9625560 Sep 11 02:00 libgio-2.0.so.0.6400.2
52-
lrwxrwxrwx 1 root 16 Sep 11 02:00 libglib-2.0.so -> libglib-2.0.so.0
53-
lrwxrwxrwx 1 root 23 Sep 11 02:00 libglib-2.0.so.0 -> libglib-2.0.so.0.6400.2
54-
-rwxr-xr-x 1 root 4938896 Sep 11 01:59 libglib-2.0.so.0.6400.2
55-
lrwxrwxrwx 1 root 19 Sep 11 02:00 libgmodule-2.0.so -> libgmodule-2.0.so.0
56-
lrwxrwxrwx 1 root 26 Sep 11 02:00 libgmodule-2.0.so.0 -> libgmodule-2.0.so.0.6400.2
57-
-rwxr-xr-x 1 root 50048 Sep 11 02:00 libgmodule-2.0.so.0.6400.2
58-
lrwxrwxrwx 1 root 19 Sep 11 02:00 libgobject-2.0.so -> libgobject-2.0.so.0
59-
lrwxrwxrwx 1 root 26 Sep 11 02:00 libgobject-2.0.so.0 -> libgobject-2.0.so.0.6400.2
60-
-rwxr-xr-x 1 root 1762800 Sep 11 02:00 libgobject-2.0.so.0.6400.2
61-
lrwxrwxrwx 1 root 19 Sep 11 02:00 libgthread-2.0.so -> libgthread-2.0.so.0
62-
lrwxrwxrwx 1 root 26 Sep 11 02:00 libgthread-2.0.so.0 -> libgthread-2.0.so.0.6400.2
63-
-rwxr-xr-x 1 root 14824 Sep 11 02:00 libgthread-2.0.so.0.6400.2
64-
lrwxrwxrwx 1 root 18 Sep 11 01:58 libimagequant.so -> libimagequant.so.0
65-
-rw-r--r-- 1 root 86912 Sep 11 01:58 libimagequant.so.0
66-
lrwxrwxrwx 1 root 13 Sep 11 01:58 libjpeg.so -> libjpeg.so.62
67-
lrwxrwxrwx 1 root 17 Sep 11 01:58 libjpeg.so.62 -> libjpeg.so.62.3.0
68-
-rwxr-xr-x 1 root 475448 Sep 11 01:58 libjpeg.so.62.3.0
69-
lrwxrwxrwx 1 root 19 Sep 11 01:57 libpng16.so -> libpng16.so.16.37.0
70-
lrwxrwxrwx 1 root 19 Sep 11 01:57 libpng16.so.16 -> libpng16.so.16.37.0
71-
-rwxr-xr-x 1 root 912200 Sep 11 01:57 libpng16.so.16.37.0
72-
lrwxrwxrwx 1 root 11 Sep 11 01:57 libpng.so -> libpng16.so
73-
lrwxrwxrwx 1 root 17 Sep 11 01:58 libturbojpeg.so -> libturbojpeg.so.0
74-
lrwxrwxrwx 1 root 21 Sep 11 01:58 libturbojpeg.so.0 -> libturbojpeg.so.0.2.0
75-
-rwxr-xr-x 1 root 596576 Sep 11 01:57 libturbojpeg.so.0.2.0
76-
lrwxrwxrwx 1 root 18 Sep 11 02:05 libvips.so -> libvips.so.42.12.3
77-
lrwxrwxrwx 1 root 18 Sep 11 02:05 libvips.so.42 -> libvips.so.42.12.3
78-
-rwxr-xr-x 1 root 12145616 Sep 11 02:05 libvips.so.42.12.3
40+
lrwxrwxrwx 1 root 18 Sep 19 22:46 libexpat.so -> libexpat.so.1.6.11
41+
lrwxrwxrwx 1 root 18 Sep 19 22:46 libexpat.so.1 -> libexpat.so.1.6.11
42+
-rwxr-xr-x 1 root 231496 Sep 19 22:46 libexpat.so.1.6.11
43+
lrwxrwxrwx 1 root 11 Sep 19 22:53 libffi.so -> libffi.so.7
44+
lrwxrwxrwx 1 root 15 Sep 19 22:53 libffi.so.7 -> libffi.so.7.1.0
45+
-rwxr-xr-x 1 root 196304 Sep 19 22:52 libffi.so.7.1.0
46+
-rwxr-xr-x 1 root 926 Sep 19 22:50 libfftw3.la
47+
lrwxrwxrwx 1 root 17 Sep 19 22:50 libfftw3.so -> libfftw3.so.3.5.8
48+
lrwxrwxrwx 1 root 17 Sep 19 22:50 libfftw3.so.3 -> libfftw3.so.3.5.8
49+
-rwxr-xr-x 1 root 2327176 Sep 19 22:50 libfftw3.so.3.5.8
50+
-rwxr-xr-x 1 root 1004 Sep 19 22:50 libfftw3_threads.la
51+
lrwxrwxrwx 1 root 25 Sep 19 22:50 libfftw3_threads.so -> libfftw3_threads.so.3.5.8
52+
lrwxrwxrwx 1 root 25 Sep 19 22:50 libfftw3_threads.so.3 -> libfftw3_threads.so.3.5.8
53+
-rwxr-xr-x 1 root 33968 Sep 19 22:50 libfftw3_threads.so.3.5.8
54+
lrwxrwxrwx 1 root 11 Sep 19 22:46 libgif.so -> libgif.so.7
55+
lrwxrwxrwx 1 root 15 Sep 19 22:46 libgif.so.7 -> libgif.so.7.2.0
56+
-rwxr-xr-x 1 root 36568 Sep 19 22:46 libgif.so.7.2.0
57+
lrwxrwxrwx 1 root 15 Sep 19 22:53 libgio-2.0.so -> libgio-2.0.so.0
58+
lrwxrwxrwx 1 root 22 Sep 19 22:53 libgio-2.0.so.0 -> libgio-2.0.so.0.6400.2
59+
-rwxr-xr-x 1 root 10701792 Sep 19 22:53 libgio-2.0.so.0.6400.2
60+
lrwxrwxrwx 1 root 16 Sep 19 22:53 libglib-2.0.so -> libglib-2.0.so.0
61+
lrwxrwxrwx 1 root 23 Sep 19 22:53 libglib-2.0.so.0 -> libglib-2.0.so.0.6400.2
62+
-rwxr-xr-x 1 root 5742552 Sep 19 22:52 libglib-2.0.so.0.6400.2
63+
lrwxrwxrwx 1 root 19 Sep 19 22:53 libgmodule-2.0.so -> libgmodule-2.0.so.0
64+
lrwxrwxrwx 1 root 26 Sep 19 22:53 libgmodule-2.0.so.0 -> libgmodule-2.0.so.0.6400.2
65+
-rwxr-xr-x 1 root 50400 Sep 19 22:53 libgmodule-2.0.so.0.6400.2
66+
lrwxrwxrwx 1 root 19 Sep 19 22:53 libgobject-2.0.so -> libgobject-2.0.so.0
67+
lrwxrwxrwx 1 root 26 Sep 19 22:53 libgobject-2.0.so.0 -> libgobject-2.0.so.0.6400.2
68+
-rwxr-xr-x 1 root 1856656 Sep 19 22:53 libgobject-2.0.so.0.6400.2
69+
lrwxrwxrwx 1 root 19 Sep 19 22:53 libgthread-2.0.so -> libgthread-2.0.so.0
70+
lrwxrwxrwx 1 root 26 Sep 19 22:53 libgthread-2.0.so.0 -> libgthread-2.0.so.0.6400.2
71+
-rwxr-xr-x 1 root 14840 Sep 19 22:53 libgthread-2.0.so.0.6400.2
72+
lrwxrwxrwx 1 root 18 Sep 19 22:47 libimagequant.so -> libimagequant.so.0
73+
-rw-r--r-- 1 root 62432 Sep 19 22:47 libimagequant.so.0
74+
lrwxrwxrwx 1 root 13 Sep 19 22:47 libjpeg.so -> libjpeg.so.62
75+
lrwxrwxrwx 1 root 17 Sep 19 22:47 libjpeg.so.62 -> libjpeg.so.62.3.0
76+
-rwxr-xr-x 1 root 475448 Sep 19 22:47 libjpeg.so.62.3.0
77+
lrwxrwxrwx 1 root 20 Sep 19 22:51 liborc-0.4.so -> liborc-0.4.so.0.25.0
78+
lrwxrwxrwx 1 root 20 Sep 19 22:51 liborc-0.4.so.0 -> liborc-0.4.so.0.25.0
79+
-rwxr-xr-x 1 root 797976 Sep 19 22:51 liborc-0.4.so.0.25.0
80+
lrwxrwxrwx 1 root 19 Sep 19 22:46 libpng16.so -> libpng16.so.16.37.0
81+
lrwxrwxrwx 1 root 19 Sep 19 22:46 libpng16.so.16 -> libpng16.so.16.37.0
82+
-rwxr-xr-x 1 root 285720 Sep 19 22:46 libpng16.so.16.37.0
83+
lrwxrwxrwx 1 root 11 Sep 19 22:46 libpng.so -> libpng16.so
84+
lrwxrwxrwx 1 root 17 Sep 19 22:47 libturbojpeg.so -> libturbojpeg.so.0
85+
lrwxrwxrwx 1 root 21 Sep 19 22:47 libturbojpeg.so.0 -> libturbojpeg.so.0.2.0
86+
-rwxr-xr-x 1 root 596576 Sep 19 22:47 libturbojpeg.so.0.2.0
87+
lrwxrwxrwx 1 root 18 Sep 19 22:58 libvips.so -> libvips.so.42.12.3
88+
lrwxrwxrwx 1 root 18 Sep 19 22:58 libvips.so.42 -> libvips.so.42.12.3
89+
-rwxr-xr-x 1 root 4257200 Sep 19 22:58 libvips.so.42.12.3
7990

8091
$ ls -lAGp /opt/include
81-
-rw-r--r-- 1 root 6.8K Apr 29 23:53 libimagequant.h```
92+
-rw-r--r-- 1 root 6942 Sep 19 22:47 libimagequant.h
93+
```

0 commit comments

Comments
 (0)