初次体验hiphop-php

昨天facebook在github上发布了hiphop-php的源代码。之前听说这玩意能把php代码翻译成c++代码,然后带来巨大的性能提升,所以第一时间编译了一份hiphop-php。

我的机器环境是

  • Centos 5.3 x86_64
  • 8G内存
  • Intel(R) Xeon(R) CPU E5420 @ 2.50GHz

安装注意事项

编译的时候碰到的问题很多,但是基本上都是按照wiki上的步骤进行的。我觉得比较重要的几点:

  • wiki上的Required Packages包包列表都要检查一遍,比如版本号,是否安装过,像binutils-dev这种就很容易忽略
  • 版本符合的话,直接用yum安装这些包就可以了
  • wiki上有类似Boost 1.37 is the minimum version字样,说明开发者可能就是在这个版本下开发的,我试了下最新版本的boost,编译到后来反而出错
  • 如果yum上没有符合版本的lib库,可以手动编译,但是编译时建议就放在自己的home下,比如:
    ./configure --prefix=/home/user
  • tbb Intel’s Thread Building Blocks这个包有些麻烦,记得按照wiki上说的步骤安装

测试hiphop-php

安装完成之后,时间也不是太多,所以我仅仅是简单的测试了一个php文件,代码如下:


<?php
$i = 0;
for($j = 0; $j < 1000000; $j++)
        $i += $j;

echo $i, "\n";
?>

用hphp进行编译:

hphp/hphp test.php --keep-tempdir=1 --log=3

提示生成新的可执行文件

/tmp/hphp_c9sbnG/program

做一下运行时间对比:


$ time php test.php
499999500000

real    0m0.307s
user    0m0.299s
sys     0m0.007s

$ time /tmp/hphp_c9sbnG/program
499999500000

real    0m0.259s
user    0m0.194s
sys     0m0.008s

没看出来编译成c++代码之后有太大的性能提升,估计是俺的使用手法问题?在邮件组里观察几天再说。

Update

facebook将优化之后的编译参数提交到了github,于是我重新编译并测试一遍这段相同的代码:


$ time /tmp/hphp_c9sbnG/program
499999500000

real    0m0.140s
user    0m0.076s
sys     0m0.006s

可以看到,经hiphop编译后的php,执行时间几乎快了一倍。

28 Replies to “初次体验hiphop-php”

  1. 你真够快的,我还在build过程中。。。
    都恨不得直接装个Ubuntu了,有完整的wiki说明

  2. 在 Freebsd 上编译简直是噩梦,还是在 Ubuntu 上快速了当。我准备转换整个 WordPress ,看看效果如何。

  3. 我也觉得这个对于简单的计算看不出来,
    最后编译成的机器命令无非是谁的行数多谁慢。之前还试过在嵌入式系统里把for 100的循环直接展开,写100遍,编译之后的计算都比用循环要快一点。

    对于一般的网站来说应该用处不大,瓶颈也不在PHP的运算上。

    不过如果大到像facebook这样的庞然大物的话,能优化一点点,乘上其规模也是很大的一块肉了。

  4. 其实在user时间块上已经有比较大的性能提升了,你可以看看百分比,高达1/3的时间,而且还只是这样的简单运算。在大量应用了OOP后,肯定性能提升将会相当明显的。PHP VM里对于函数调用和OOP上的性能损失是相当的大的

  5. 可否给一个centos下build的过程呢。我到最后的cmake的时候有两个莫名其妙的warning:
    runtime library [libmcrypt.so.4] in /usr/lib64 may be hidden by files in:
    /usr/local/lib
    但是检查了没问题……make的时候就有两个error
    谢谢!

  6. 朋友,你能贴出编译过程么?
    我在CentOS5.3尝试了N次了,cmake过程全部通过了,但是make的时候会在结束的时候出现异常
    生成了hphp文件,但是hphpi生成错误

    而且经过测试hphp是不好用的,

  7. [root@localhost hiphop-php-32b]# cmake .
    — The C compiler identification is GNU
    — The CXX compiler identification is GNU
    — Check for working C compiler: /usr/bin/gcc
    — Check for working C compiler: /usr/bin/gcc — works
    — Detecting C compiler ABI info
    — Detecting C compiler ABI info – done
    — Check for working CXX compiler: /usr/bin/c++
    — Check for working CXX compiler: /usr/bin/c++ — works
    — Detecting CXX compiler ABI info
    — Detecting CXX compiler ABI info – done
    — Boost version: 1.37.0
    — Found the following Boost libraries:
    — system
    — program_options
    — filesystem
    — MySQL Include dir: /usr/include library dir: /usr/lib/mysql
    — MySQL client libraries: mysqlclient
    — Found PCRE: /usr/local/lib/libpcre.so
    — Found libevent: /usr/lib/libevent.so
    — Looking for evhttp_bind_socket_with_fd
    — Looking for evhttp_bind_socket_with_fd – found
    — Looking for gdImagePng in /usr/lib/libgd.so
    — Looking for gdImagePng in /usr/lib/libgd.so – found
    — Found ZLIB: /usr/lib/libz.so
    — Found PNG: /usr/lib/libpng.so
    — Looking for gdImageJpeg in /usr/lib/libgd.so
    — Looking for gdImageJpeg in /usr/lib/libgd.so – found
    — Found JPEG: /usr/lib/libjpeg.so
    — Looking for gdImageGif in /usr/lib/libgd.so
    — Looking for gdImageGif in /usr/lib/libgd.so – found
    — Found GD: /usr/lib/libgd.so
    — Found CURL: /usr/lib/libcurl.so
    — Looking for curl_multi_select
    — Looking for curl_multi_select – found
    — checking for module ‘libxml-2.0’
    — found libxml-2.0, version 2.6.26
    — Found LibXml2: /usr/lib/libxml2.so
    — Found EXPAT: /usr/lib/libexpat.so
    — Found ICU header files in /usr/local/include
    — Found ICU libraries: /usr/local/lib/libicuuc.so
    — Found Intel TBB
    — Found mcrypt: /usr/lib/libmcrypt.so
    — Found OpenSSL: /usr/lib/libssl.so
    — Found ONIGURUMA: /usr/local/lib/libonig.so
    — Found BISON: /usr/local/bin/bison
    — Found FLEX: /usr/local/bin/flex
    — Found RE2C: /usr/local/bin/re2c
    — Looking for arpa/inet.h
    — Looking for arpa/inet.h – found
    — Looking for netinet/in.h
    — Looking for netinet/in.h – found
    — Looking for stddef.h
    — Looking for stddef.h – found
    — Looking for stdint.h
    — Looking for stdint.h – found
    — Looking for string.h
    — Looking for string.h – found
    — Looking for sys/socket.h
    — Looking for sys/socket.h – found
    — Looking for sys/time.h
    — Looking for sys/time.h – found
    — Looking for unistd.h
    — Looking for unistd.h – found
    — Looking for sys/types.h
    — Looking for sys/types.h – found
    — Looking for stdint.h
    — Looking for stdint.h – found
    — Looking for stddef.h
    — Looking for stddef.h – found
    — Check size of size_t
    — Check size of size_t – done
    — Check size of ssize_t
    — Check size of ssize_t – done
    — Check size of uint32_t
    — Check size of uint32_t – done
    — Check size of uint8_t
    — Check size of uint8_t – done
    — Looking for AF_LOCAL
    — Looking for AF_LOCAL – found
    — Looking for PF_LOCAL
    — Looking for PF_LOCAL – found
    — Looking for memset
    — Looking for memset – found
    — Looking for socket
    — Looking for socket – found
    — Looking for strerror
    — Looking for strerror – found
    — Found libevent: /usr/lib/libevent.so
    — Looking for event_get_version_number
    — Looking for event_get_version_number – not found.
    — Performing Test HAVE_LIBEVENT_145
    — Performing Test HAVE_LIBEVENT_145 – Success
    — Found libevent 1.4.5+
    — Looking for include files INCLUDE_CHECK_stdlib.h
    — Looking for include files INCLUDE_CHECK_stdlib.h – found
    — Looking for include files INCLUDE_CHECK_assert.h
    — Looking for include files INCLUDE_CHECK_assert.h – found
    — Looking for strcasecmp
    — Looking for strcasecmp – found
    — Looking for strchr
    — Looking for strchr – found
    — Downloading 8859-1.TXT
    — Downloading 8859-2.TXT
    — Downloading 8859-3.TXT
    — Downloading 8859-4.TXT
    — Downloading 8859-5.TXT
    — Downloading 8859-6.TXT
    — Downloading 8859-7.TXT
    — Downloading 8859-8.TXT
    — Downloading 8859-9.TXT
    — Downloading 8859-10.TXT
    — Downloading 8859-11.TXT
    — Downloading 8859-13.TXT
    — Downloading 8859-14.TXT
    — Downloading 8859-15.TXT
    — Downloading 8859-16.TXT
    — Downloading EastAsianWidth.txt
    — Configuring done
    — Generating done
    — Build files have been written to: /root/hiphop-32b-softs/hiphop-php-32b

    这是我的cmake过程,应该没有太大问题吧

  8. [ 2%] [BISON][XHPParser] Building parser with bison 2.4.2
    [ 2%] [RE2C] Building re2c scanner with re2c 001305
    [ 3%] [FLEX][XHPScanner] Building scanner with flex 2.5.35
    Scanning dependencies of target xhp
    [ 3%] Building CXX object src/third_party/xhp/xhp/CMakeFiles/xhp.dir/code_rope.cpp.o
    在包含自 /root/hiphop-32b-softs/hiphop-php-32b/src/third_party/xhp/xhp/code_rope.cpp:17 的文件中:
    /root/hiphop-32b-softs/hiphop-php-32b/src/third_party/xhp/xhp/code_rope.hpp:17:20: 错误:ext/rope:没有那个文件或目录
    /root/hiphop-32b-softs/hiphop-php-32b/src/third_party/xhp/xhp/code_rope.hpp:18:32: 错误:ext/pool_allocator.h:没有那个文或目录

    到这个地方会出现错误!!!!!!!!!! 是跟flex有关系呢,还是跟xhp有关系?实在是不解

  9. @Volcano 我checkout的hiphop-php版本就是32bit的,无论我怎么尝试都是在xhp这个地方出错,非常让人困惑,我感觉跟flex有关系,但是我的flex已经升级到2.5.35版本

    [ 13%] [BISON][XHPParser] Building parser with bison 2.4.1
    [ 13%] [RE2C] Building re2c scanner with re2c 001305
    [ 14%] [FLEX][XHPScanner] Building scanner with flex 2.5.35
    Scanning dependencies of target xhp
    [ 14%] Building CXX object src/third_party/xhp/xhp/CMakeFiles/xhp.dir/code_rope.cpp.o
    在包含自 /root/hiphop-32b-softs/hiphop-php-32b/src/third_party/xhp/xhp/code_rope.cpp:17 的文件中:
    /root/hiphop-32b-softs/hiphop-php-32b/src/third_party/xhp/xhp/code_rope.hpp:17:20: 错误:ext/rope:没有那个文件或目录
    /root/hiphop-32b-softs/hiphop-php-32b/src/third_party/xhp/xhp/code_rope.hpp:18:32: 错误:ext/pool_allocator.h:没有那个文或目录

  10. 你好博主,我花费了很多时间去编译hiphop-php,总是出现一些莫名其妙的错误
    不知道你编译的时候是否碰到这个错误呢,在make到最后的时候,hphp已经生成,但是在生成hphpi的时候,却提示一些关于libiconv的错误
    libiconv我已经装了,我找了很多资料都没有相关的文章,不知道博主是否能给一点点提示,先谢了:)

    Linking CXX static library ../../bin/libhphp_analysis.a
    [ 87%] Built target hphp_analysis
    [ 87%] Building CXX object src/hphp/CMakeFiles/hphp.dir/externals.cpp.o
    [ 87%] Building CXX object src/hphp/CMakeFiles/hphp.dir/main.cpp.o
    Linking CXX executable hphp
    Building hphpi
    /root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `HPHP::_php_iconv_strlen(unsigned int*, char const*, unsigned int, char const*)’:\next_iconv.cpp:(.text+0x1d3): undefined reference to `libiconv_open’\next_iconv.cpp:(.text+0x268): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x2a5): undefined reference to `libiconv_close’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `HPHP::php_iconv_string(char const*, unsigned int, char**, unsigned int*, char const*, char const*)’:\next_iconv.cpp:(.text+0x33a): undefined reference to `libiconv_open’\next_iconv.cpp:(.text+0x420): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x490): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x4a8): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0x4b7): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0x4f0): undefined reference to `libiconv_close’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `HPHP::_php_iconv_strpos(unsigned int*, char const*, unsigned int, char const*, unsigned int, int, char const*)’:\next_iconv.cpp:(.text+0x5d3): undefined reference to `libiconv_open’\next_iconv.cpp:(.text+0x660): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x74f): undefined reference to `libiconv_close’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `HPHP::_php_iconv_appendl(HPHP::StringBuffer&, char const*, unsigned int, void*)’:\next_iconv.cpp:(.text+0x9ca): undefined reference to `libiconv’\next_iconv.cpp:(.text+0xaac): undefined reference to `libiconv’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `HPHP::_php_iconv_mime_decode(HPHP::StringBuffer&, char const*, unsigned int, char const*, char const**, int)’:\next_iconv.cpp:(.text+0xb29): undefined reference to `libiconv_open’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `.L298′:\next_iconv.cpp:(.text+0xf0d): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0xf1b): undefined reference to `libiconv_close’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `.L299′:\next_iconv.cpp:(.text+0x1276): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0x128b): undefined reference to `libiconv_open’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `HPHP::f_iconv_mime_encode(HPHP::String const&, HPHP::String const&, HPHP::Variant const&)’:\next_iconv.cpp:(.text+0x2835): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0x2915): undefined reference to `libiconv_open’\next_iconv.cpp:(.text+0x2950): undefined reference to `libiconv_open’\next_iconv.cpp:(.text+0x3169): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x31a7): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x31f0): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x3257): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0x3514): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x354f): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x3773): undefined reference to `libiconv’\n/root/software/hiphop-php-32b/bin/libhphp_runtime.a(ext_iconv.cpp.o): In function `HPHP::f_iconv_substr(HPHP::String const&, int, int, HPHP::String const&)’:\next_iconv.cpp:(.text+0x40dc): undefined reference to `libiconv_open’\next_iconv.cpp:(.text+0x4172): undefined reference to `libiconv’\next_iconv.cpp:(.text+0x4218): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0x422e): undefined reference to `libiconv_close’\next_iconv.cpp:(.text+0x428e): undefined reference to `libiconv_open’\ncollect2: ld returned 1 exit status\nmake[5]: *** [program] Error 1\nmake[4]: *** [CMakeFiles/program.dir/all] Error 2\nmake[3]: *** [all] Error 2\n
    mv: cannot stat `gen/program’: No such file or directory
    make[2]: *** [src/hphp/hphp] Error 1
    make[1]: *** [src/hphp/CMakeFiles/hphp.dir/all] Error 2
    make: *** [all] Error 2

  11. 我编译成功的环境有:

    • centos 64bit
    • ubuntu 32bit

    不知道你现在的操作系统是什么。建议你装个Ubuntu或者centos 64,都有现成的安装步骤,32位的还不算正式支持,所以出现问题也很正常。

  12. 你好,麻烦问下

    facebook将优化之后的编译参数提交到了github,于是我重新编译并测试一遍这段相同的代码:

    这段优化之后的编译参数在哪里可以找到?

    我编译后执行的结果并没有比纯用PHP跑得快。

  13. 你现在下载最新的hiphop-php的源码,编译参数已经是优化之后的了。

    一般的普通运算并不会比php快,但是如果有n个class的php页面,执行速度是有显著提升的。

  14. [ 12%] Building CXX object src/CMakeFiles/hphp_runtime_static.dir/runtime/base/program_functions.cpp.o
    In file included from /usr/local/hiphop-php/src/runtime/base/shared/shared_store_base.h:23,
    from /usr/local/hiphop-php/src/runtime/ext/ext_apc.h:22,
    from /usr/local/hiphop-php/src/runtime/base/program_functions.cpp:51:
    /usr/local/hiphop-php/src/util/smalllocks.h:19:18: error: atomic: No such file or directory
    In file included from /usr/local/hiphop-php/src/runtime/base/shared/shared_store_base.h:23,
    from /usr/local/hiphop-php/src/runtime/ext/ext_apc.h:22,
    from /usr/local/hiphop-php/src/runtime/base/program_functions.cpp:51:
    /usr/local/hiphop-php/src/util/smalllocks.h:34: error: expected initializer before ‘noexcept’
    /usr/local/hiphop-php/src/util/smalllocks.h:38: error: variable or field ‘futex_wait’ declared void
    /usr/local/hiphop-php/src/util/smalllocks.h:38: error: ‘atomic’ is not a member of ‘std’
    /usr/local/hiphop-php/src/util/smalllocks.h:38: error: expected primary-expression before ‘int’
    /usr/local/hiphop-php/src/util/smalllocks.h:38: error: expected primary-expression before ‘int’
    /usr/local/hiphop-php/src/util/smalllocks.h:43: error: variable or field ‘futex_wake’ declared void
    /usr/local/hiphop-php/src/util/smalllocks.h:43: error: ‘atomic’ is not a member of ‘std’
    /usr/local/hiphop-php/src/util/smalllocks.h:43: error: expected primary-expression before ‘int’
    /usr/local/hiphop-php/src/util/smalllocks.h:43: error: expected primary-expression before ‘int’
    /usr/local/hiphop-php/src/util/smalllocks.h:96: error: ISO C++ forbids declaration of ‘atomic’ with no type
    /usr/local/hiphop-php/src/util/smalllocks.h:96: error: invalid use of ‘::’
    /usr/local/hiphop-php/src/util/smalllocks.h:96: error: expected ‘;’ before ‘<' token
    /usr/local/hiphop-php/src/util/smalllocks.h: In constructor 'HPHP::SmallLock::SmallLock()':
    /usr/local/hiphop-php/src/util/smalllocks.h:69: error: class 'HPHP::SmallLock' does not have any field named 'lock_data'
    /usr/local/hiphop-php/src/util/smalllocks.h: In member function 'void HPHP::SmallLock::lock()':
    /usr/local/hiphop-php/src/util/smalllocks.h:74: error: 'lock_data' was not declared in this scope
    /usr/local/hiphop-php/src/util/smalllocks.h:74: error: 'memory_order_acquire' is not a member of 'std'
    /usr/local/hiphop-php/src/util/smalllocks.h:79: error: 'lock_data' was not declared in this scope
    /usr/local/hiphop-php/src/util/smalllocks.h:79: error: 'memory_order_acquire' is not a member of 'std'

    会是什么问题,gcc已经升级到指定版本了

  15. [ 10%] Building CXX object src/third_party/folly/CMakeFiles/folly.dir/folly/json.cpp.o
    In file included from /usr/local/src/hiphop-php/src/third_party/folly/folly/Format.h:268:0,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/dynamic-inl.h:25,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/dynamic.h:490,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/json.h:44,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/json.cpp:17:
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h: 在成员函数‘void folly::FormatValue::format(folly::FormatArg&, FormatCallback&) const’中:
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h:568:60: 错误:对‘max(&)’的调用没有匹配的函数
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h:568:60: 附注:备选是:
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algobase.h:210:5: 附注:template const _Tp& std::max(const _Tp&, const _Tp&)
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algobase.h:254:56: 附注:template const _Tp& std::max(const _Tp&, const _Tp&, _Compare)
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algo.h:4117:34: 附注:template _Tp std::max(std::initializer_list)
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algo.h:4122:51: 附注:template _Tp std::max(std::initializer_list, _Compare)
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h:569:27: 错误:‘buf’在此作用域中尚未声明
    make[2]: *** [src/third_party/folly/CMakeFiles/folly.dir/folly/json.cpp.o] 错误 1
    make[1]: *** [src/third_party/folly/CMakeFiles/folly.dir/all] 错误 2

  16. 安装出问题?求解啊
    [ 10%] Building CXX object src/third_party/folly/CMakeFiles/folly.dir/folly/json.cpp.o
    In file included from /usr/local/src/hiphop-php/src/third_party/folly/folly/Format.h:268:0,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/dynamic-inl.h:25,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/dynamic.h:490,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/json.h:44,
    from /usr/local/src/hiphop-php/src/third_party/folly/folly/json.cpp:17:
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h: 在成员函数‘void folly::FormatValue::format(folly::FormatArg&, FormatCallback&) const’中:
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h:568:60: 错误:对‘max(&)’的调用没有匹配的函数
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h:568:60: 附注:备选是:
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algobase.h:210:5: 附注:template const _Tp& std::max(const _Tp&, const _Tp&)
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algobase.h:254:56: 附注:template const _Tp& std::max(const _Tp&, const _Tp&, _Compare)
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algo.h:4117:34: 附注:template _Tp std::max(std::initializer_list)
    /usr/local/gcc/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_algo.h:4122:51: 附注:template _Tp std::max(std::initializer_list, _Compare)
    /usr/local/src/hiphop-php/src/third_party/folly/folly/Format-inl.h:569:27: 错误:‘buf’在此作用域中尚未声明
    make[2]: *** [src/third_party/folly/CMakeFiles/folly.dir/folly/json.cpp.o] 错误 1
    make[1]: *** [src/third_party/folly/CMakeFiles/folly.dir/all] 错误 2

  17. @k 我得说hiphop-php实在是编译比较麻烦,现在的版本和我之前测试的已经相差很多,给不了你什么帮助

  18. 为什么hiphop在网页打开,刷新几次就连接不上了

    显示错误

    tail -f /opt/log/hhvm/error.log

    [Tue Jan 29 00:26:18 2013] [hphp] [3467:7f36797ff700:4:000002] [7f36892cc4a0:fa7e70:fa96e0:e56a52:e56dce:e5784f:e57e49:d024eb:88d3f9:b8a315:be9da8:cdccf1:cc79af:cc9b91:115af30:115b155:7f368cb85e9a:7f3689389cbd] Core dumped: Segmentation fault

Leave a Reply

Your email address will not be published.