Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php代码如何转c

php代码如何转c

藏色散人
藏色散人asal
2020-10-09 10:21:102492semak imbas

php代码转c的实现方法:首先安装需要依赖的包;然后指定CMake的位置;接着通过“export HPHP_HOME=`pwd`”等命令进行编译;最后直接编译为c++代码并执行即可。

php代码如何转c

推荐:《PHP视频教程》 

把PHP代码编译成C/C++代码,使你的php跑得更快

FaceBook 发布了一款能将php代码转换为C++的工具,hiphop

如果你的网站很大,类似新浪这样的大型门户,可以考虑。

目前已经在CentOS和ubuntu等Linux服务器上编译通过。

安装:

一、需要依赖的包

cmake 2.6 is the minimum version
g++/gcc 4.3 is the minimum version
Boost 1.37 is the minimum version
flex
bison
re2c
libmysql
libxml2
libmcrypt
libicu 4.2 is the minimum version
openssl
binutils
libcap
gd
zlib
tbb Intel's Thread Building Blocks
Oniguruma
libpcre
libexpat
libmemcached

下面的包需要在源代码的基础上打补丁

libcurl

src/third_party/libcurl.fb-changes.diff

libevent 1.4

src/third_party/libevent-1.4.13.fb-changes.diff OR src/third_party/libevent-1.4.14.fb-changes.diff

二、指定CMake的位置

export CMAKE_PREFIX_PATH=/home/user

三、编译

cd /home/user/dev
git clone git://github.com/facebook/hiphop-php.git
cd hiphop-php
git submodule init
git submodule update
export HPHP_HOME=`pwd`
export HPHP_LIB=`pwd`/bin
make
cmake .

据fackbook说,可以提高50%左右的性能,前提是php代码中不能含有eval这种很少用的方法。

四、使用hphp

环境设置:

cd .. # 进入hphp的根目录,源码的存放目录
export HPHP_HOME=`pwd`
export HPHP_LIB=`pwd`/bin
# if you followed the Ubuntu 9.10 instructions, you also need
export CMAKE_PREFIX_PATH=`/bin/pwd`/../

有若干种模式

1:直接编译为c++代码并执行 

hphp/hphp test.php

2:编译到一个临时文件夹,并执行编译好的c++程序

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

/tmp/hphp_p6vSsP/program 这个根据你自己生成的运行

3:编译php为一个服务,并在指定端口运行

hphp/hphp test.php --keep-tempdir=1 --log=3
/tmp/hphp_p6vSsP/program -m server -p 8080
curl http://localhost:8080/test.php
sudo /tmp/hphp_p6vSsP/program -m daemon

Atas ialah kandungan terperinci php代码如何转c. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php如何实现不同随机数Artikel seterusnya:php数组如何转字符串