加快HipHop编译和链接时间

时间:2011-04-13 02:28:32

标签: php g++ hiphop

经过一番工作,我设法让HipHop在我的服务器上运行。但是当我学习和调试将代码移动到与HipHop变换器一起工作的过程时,我发现我必须经常重新编译它......但是构建我的130文件代码库需要10多分钟。鉴于Facebook博客上最近关于改善编译时间的帖子,这似乎异常漫长。

任何人都有运气改善他们的编译时间?它可能只是对我遗漏的论点的一般无知......我比PHP更了解PHP。

来自Facebook的信息,以及我的命令和日志都包含在下面。

在Facebook博客文章中,他们说他们可以很快地编译一个巨大的二进制文件。

  

除了优化编译代码外,还花了很多精力来改进编译器本身。现在,并行化了编译器中的几个阶段,包括解析,优化和代码生成。 Hyves对生成的C ++代码进行了更改,使其编译速度更快,而不会损失任何运行时效率。在distcc的帮助下,我们可以在大约15分钟内构建一个大于1GB的二进制文件(在剥离调试信息之后)。虽然更快的编译不会直接影响运行时效率,但它有助于使部署过程更好。

http://www.facebook.com/notes/facebook-engineering/hiphop-for-php-more-optimizations-for-efficient-servers/10150121348198920

编译记录

$HPHP_HOME/src/hphp/hphp --input-list=files.list -k 1 --log=3 --include-path="." -v "AllDynamic=true" -o /root/stocks_hphp/

running hphp...
creating temporary directory /tmp/hphp_h3vCKc ...
parsing inputs...

#parsing inputs took 0'00" (330 ms) wall time
pre-optimizing...
pre-optimizing took 0'00" (150 ms) wall time
inferring types...
inferring types took 0'00" (160 ms) wall time
post-optimizing...
post-optimizing took 0'00" (100 ms) wall time
creating CPP files...
creating CPP files took 0'00" (590 ms) wall time
saving code errors...
compiling and linking CPP files...

compiling and linking CPP files took 11'50" (710315 ms) wall time

1 个答案:

答案 0 :(得分:1)

答案就在你引用的摘录中:

  

我们可以构建更多的二进制文件   超过1GB(剥离调试后)   信息)大约15分钟,与   distcc的帮助。

distcc是一个分布式编译器。他们有一大堆机器可以并行编译。您可能无法在一台计算机上获得相同的性能。