php def,提高define性能的php扩展hidef的安装和使用

提高define性能的php扩展hidef的安装和使用

更新时间:2011年06月14日 21:38:43   作者:

在apache启动前,PHP启动时创建并初始化了这些常量,这样就不需要在php里define常量了,性能自然没有任何问题了!

官网:http://pecl.php.net/package/hidef

简介:

Allow definition of user defined constants in simple ini files, which are then processed like internal constants, without any

of the usual performance penalties.

允许使用简单的ini文件来定义需要的常量,就像使用内部变量一样,而且没有使用Define的性能问题。

作者说Hidef is initialized in php module init, before apache starts spawning children.

在apache启动前,PHP启动时创建并初始化了这些常量,这样就不需要在php里define常量了,性能自然没有任何问题了!

在Nginx下同样可用,以下是安装过程:

1、下载并解压进入目录

# wget http://pecl.php.net/get/hidef-0.1.8.tgz

# tar zxvf hidef-0.1.8.tgz

# cd hidef-0.1.8

2、没有configure文件,执行phpize创建该文件

# /usr/local/webserver/php/bin/phpize

# ./configure --enable-hidef --with-php-config=/usr/local/webserver/php/bin/php-config

# make

# make install

3、添加到php.ini文件里面

# vi /usr/local/webserver/php/etc/php.ini

-----------------------------------------------

extension=hidef.so

hidef.ini_path=/usr/local/webserver/php/etc/

------------------------------------------------------------------------------

注意,如果php.ini文件里面没有定义hidef.ini_path,则默认.ini文件读取位置为/hidef,只需手工创建文件 vi /hidef/hidef.ini即可。

# vi /usr/local/webserver/php/etc/hidef.ini(此处根据情况自己调整路径)

[hidef]

int ANSWER = 42;

str HX = "9enjoy";

float PIE = 3.14159;

这里整数用int,浮点数用float,字符串用str。

字符串str的值使用双引号来包含,或者直接写字符串内容。如果使用单引号,将会把单引号也做为字符串的内容。

如str HX='9enjoy',实际存储的不是9enjoy,是'9enjoy'。

4、重新加载php-fpm即可

# /usr/local/webserver/php/sbin/php-fpm reload

此时,查看phpinfo()的结果,在hidef处就可以看到定义的变量。

20110614213838385.gif

-----------------------------------------------------------------------------

附:

如果使用了APC,apc提供了定义常量的方法。apc_define_constants和apc_load_constants。apc_define_constants将常量转为数组存到一个user cache中。虽然把常量存在了内存中,但每次PHP请求时,仍然需要读cache,分别定义,因此也不会有什么明显的性能提升。我测试了下定义25个常量,使用apc的函数比直接定义常量快了0.01ms。

这样使用:

if(!apc_load_constants('defined')) {

$constants = array(

'HX'   => TRUE,

'D_BUG' => 1

);

apc_define_constants('defined', $constants);

}

define() is notoriously slow. Since the main benefit of APC is to increase the performance of scripts/applications, this mechanism is provided to streamline the process of mass constant definition. However, this function does not perform as well as anticipated.

For a better-performing solution, try the hidef extension from PECL.

APC的文档中推荐使用hidef。

相关文章

1a1b05c64693fbf380aa1344a7812747.png

Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。2010-02-02

4f55910a645b073bc4fc65dc10dc14bd.png

下面小编就为大家带来一篇使用Codeigniter重写insert的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-03-03

0ea3c7666119d5615e582f823fb3fad6.png

将数据库用户名密码等信息写到配置文件config.php里,在在需要引用配置文件内容的文件里用include或require包含进来,并在函数里用global关键字将存放数据库名,密码等的变量全局化,这样就可以在文件里的函数里使用了2012-07-07

4f96a78db829b1556ff16de21e013c7a.png

这篇文章主要介绍了PHP图片加水印实现方法,涉及php图片的读取、水印处理及图形生成等操作技巧,需要的朋友可以参考下2016-05-05

8cc1031babc6aff2319f1c6af8544aa0.png

在PHP编程中,递归调用常常与静态变量使用。静态变量的含义可以参考PHP手册.希望下面的代码,会更有利于对递归以及静态变量的理解2012-12-12

0c932a99bb7b6f23c937db507070cc7b.png

在编写php程序时,错误处理是一个重要的部分。如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门2012-05-05

cca732bf65a93ed2ec0ac80c638460fe.png

PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式2012-02-02

2d9f31f2af7b675a3d153d2b7f1035a7.png

这篇文章主要介绍了PHP查找与搜索数组元素方法,实例总结了php中in_array、array_key_exists、array_search、array_keys及array_values等函数操作数组的相关使用技巧,需要的朋友可以参考下2015-06-06

b452cee8ec5cd9e58ab98eba17281e59.png

在本篇文章里小编给大家整理了关于php获取微信openid方法总结,有需要的朋友们参考学习下。2019-10-10

f4838ec7e2d4da28e0b57d4e852dadd4.png

这篇文章主要介绍了PHP获取中英混合字符串长度的方法,需要的朋友可以参考下2014-06-06

最新评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值