经过一番工作,我设法让 HipHop 在我的服务器上启动并运行。但是当我学习和调试将我的代码移动到与 HipHop 转换器配合良好的过程时,我发现我必须经常重新编译它......然而构建我的 130 个文件代码库需要 10 多分钟。鉴于 Facebook 博客上最近关于改进编译时间的帖子,它似乎异常长。
任何人都幸运地改善了他们的编译时间?这可能只是对我缺少的一个论点的普遍无知......我比 C++ 更了解 PHP。
下面包括来自 Facebook 的信息以及我的命令和日志。
在 Facebook 的一篇博客文章中,他们说他们可以很快地编译出一个巨大的二进制文件。
除了优化编译后的代码外,还花费了大量精力来改进编译器本身。编译器中的几个阶段,包括解析、优化和代码生成,现在是并行化的。Hyves 对生成的 C++ 代码进行了更改,以使其编译速度更快,而不会损失任何运行时效率。在 distcc 的帮助下,我们可以在大约 15 分钟内构建超过 1GB 的二进制文件(剥离调试信息后)。虽然更快的编译不会直接提高运行时效率,但它有助于使部署过程更好。
编译日志
$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