Thrift bin файл большого размера после компиляции - PullRequest
0 голосов
/ 05 сентября 2018

У меня проблема с компиляцией Thrift в докере контейнера с alpine 3.8

FROM alpine:3.8

RUN apk add --update --no-cache \
        libstdc++ \
        libgcc \
        libevent \
        composer \
        tar \
        git \
        bash \
        nginx

RUN  apk add --update --no-cache php7-dev boost-dev  autoconf  openssl-dev  automake make libtool bison flex  g++  && \
     cd /tmp && wget https://github.com/apache/thrift/archive/0.11.0.zip -O thrift.zip  && unzip thrift.zip && cd thrift-0.11.0 && \
     ./bootstrap.sh && ./configure --with-openssl=/usr/include/openssl --without-ruby --disable-tests --without-php_extension --without-python --without-haskell --without-java --without-perl --without-php --without-py3 --without-erlang && make && make install && \
     cd /tmp/thrift-0.11.0/lib/php/src/ext/thrift_protocol && phpize && ./configure && make && \
     echo 'extension=thrift_protocol.so' >> /etc/php7/conf.d/thrift_protocol.ini && \
     apk del --update --no-cache  php7-dev boost-dev  autoconf openssl-dev   automake make libtool bison flex  g++  && \
     rm -rf /tmp/*

после того, как размер файла компиляции bin составляет около 50 МБ

-rwxr-xr-x    1 root     root      55566368 Sep  5 10:05 thrift

например, файл bin после компиляции на Mac OSX

 4.2M Sep  4 17:37 thrift

1 Ответ

0 голосов
/ 09 сентября 2018

По умолчанию, configure && make заставит Thrift собираться с символами отладки, что является основной причиной двоичного вздутия.

Для создания более компактного и оптимизированного двоичного файла thrift замените:

configure

С:

configure CFLAGS="-s -O2" CXXFLAGS="-s -O2"

Опция компилятора -s приведет к удалению отладочной информации из сгенерированных объектов.
Опция компилятора -O2 включает общие оптимизации компилятора, которые должны значительно улучшить производительность thrift.

Дополнительная информация:

...