define 提高define性能的php扩展hidef的安装和使用
官网: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-c/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处就可以看到定义的变量。

-----------------------------------------------------------------------------
附:
如果使用了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。
以上就介绍了define 提高define性能的php扩展hidef的安装和使用,包括了define方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



define mentakrifkan makro berbilang baris dengan menggunakan `\` untuk membahagikan `do { \ printf("%d\n", x } manakala (0)` kepada berbilang baris untuk definisi. Dalam takrifan makro, sengkang ke belakang `\` mestilah aksara terakhir takrifan makro dan tidak boleh diikuti dengan ruang atau ulasan. Apabila menggunakan `\` untuk kesinambungan baris, berhati-hati untuk memastikan kod boleh dibaca dan pastikan terdapat `\` di hujung setiap baris.

Kepentingan dan peranan fungsi define dalam PHP 1. Pengenalan asas kepada fungsi define Dalam PHP, fungsi define ialah fungsi utama yang digunakan untuk menentukan pemalar tidak akan mengubah nilainya semasa menjalankan program. Pemalar yang ditakrifkan menggunakan fungsi define boleh diakses di seluruh skrip dan bersifat global. 2. Sintaks fungsi define Sintaks asas fungsi define adalah seperti berikut: define("constant name","constant value&qu

defineKompilasi bersyarat boleh dicapai menggunakan arahan prapemprosesan `#ifdef`, `#ifndef`, `#if`, `#elif`, `#else` dan `#endif`.

Penggunaan makro fungsi define: 1. Tentukan makro pengiraan mudah, "#define SQUARE(x) ((x) * (x))"; 2. Takrifkan makro dengan berbilang parameter, "#define MAX(a , b) ((a) > (b) ? (a) : (b))"; 3. Takrifkan makro dengan ungkapan kompleks, "#define ABS(x) ((x) < 0 ? -(x ) : (x)) ”.

Perbezaan antara typedef dan define terletak pada pemeriksaan jenis, skop, kebolehbacaan, pengendalian ralat, penggunaan memori, dsb. Pengenalan terperinci: 1. Pemeriksaan jenis, alias jenis yang ditakrifkan oleh typedef adalah jenis sebenar, dan pemeriksaan jenis akan dilakukan, manakala makro yang ditakrifkan hanya penggantian teks yang mudah, dan pemeriksaan jenis tidak akan dilakukan; , alias jenis yang ditakrifkan oleh typedef Skop adalah setempat dan hanya sah dalam skop semasa, manakala makro yang ditakrifkan adalah global dan boleh digunakan di mana-mana sahaja 3. Kebolehbacaan, dsb.

takrifkan penggunaan: 1. Takrifkan pemalar; 2. Takrifkan makro fungsi: 3. Takrifkan kompilasi bersyarat 4. Takrifkan makro berbilang baris.

Penggunaan pemalar takrif: 1. Tentukan pemalar berangka, "#define nilai PI"; 2. Tentukan pemalar rentetan, "#define SALAM "rentetan"" 3. Tentukan pemalar ungkapan, "#define MAX(a, b) (( a) > (b) ? (a) : (b))”.

Dalam pembangunan PHP, kita sering menghadapi situasi di mana kita perlu menentukan pemalar. Untuk mengurus pemalar dengan lebih baik dan memastikan ketekalan dan kebolehselenggaraannya sepanjang aplikasi, PHP menyediakan fungsi define untuk menentukan pemalar. Artikel ini akan menyelidiki nilai dan kepentingan fungsi define dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Sintaks asas dan penggunaan fungsi define Dalam PHP, fungsi define digunakan untuk menentukan pemalar Sintaks asasnya adalah seperti berikut: define(name,.
