Paddle 编译结果大小分析
Created by: jacquesqiao
目前 paddlepaddle编译结果中,主要有以下几个二进制/动态库:
-
paddle_trainer:
124M
trainer主进程 -
paddle_pserver_main:
114M
parameter_server主进程 -
paddle_merge_model:
120M
-
_swig_paddle.so:
129M
py_paddle的主要部分,paddle的python封装通过load并调用此动态库中的代码执行paddle核心逻辑。
因为paddle采用静态链接的方式编译,所以上述二进制size都比较大,而且都包含了大量重复的代码,这也是为了方便他们在分布式环境中执行。
造成的结果是paddle docker image size看起来比较大,有1G+,不过docker image传输过程中采用zip压缩,而zip压缩对重复内容很有效果,做了一下测试,上述四个文件用zip压缩之后的size为167M
,实际在docker image中的压缩效果,还需进一步测试。