После некоторой работы мне удалось запустить HipHop на моем сервере. Но когда я изучаю и отлаживаю процесс переноса моего кода во что-то, что хорошо работает с HipHop-трансформером, я обнаруживаю, что мне приходится его часто перекомпилировать ... Тем не менее, для создания моей 130-файловой кодовой базы требуется более 10 минут. В свете недавних публикаций в блоге Facebook о том, как улучшить время компиляции, это выглядит необычно долго.
Кому-нибудь повезло в улучшении времени компиляции? Это может быть просто неведение аргумента, который я пропускаю ... Я лучше разбираюсь в PHP, чем в C ++.
Информация из Facebook, а также моя команда и журналы приведены ниже.
Facebook
В своем блоге на Facebook они говорят, что могут довольно быстро скомпилировать огромный двоичный файл.
Помимо оптимизации скомпилированного кода, много усилий было потрачено на улучшение самого компилятора. Несколько фаз в компиляторе, включая разбор, оптимизацию и генерацию кода, теперь распараллелены. Hyves внес изменения в сгенерированный код C ++, чтобы он быстрее компилировался без потери эффективности во время выполнения. Мы можем создать двоичный файл размером более 1 ГБ (после удаления отладочной информации) примерно за 15 минут с помощью distcc. Хотя более быстрая компиляция напрямую не влияет на эффективность времени выполнения, она помогает улучшить процесс развертывания.
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