Home > Backend Development > PHP Tutorial > Use hidef extension instead of define in PHP to improve performance, hidefdefine_PHP tutorial

Use hidef extension instead of define in PHP to improve performance, hidefdefine_PHP tutorial

WBOY
Release: 2016-07-13 09:57:31
Original
849 people have browsed it

Use hidef extension instead of define in PHP to improve performance. hidefdefine

The website needs to add a new constant. I opened the local config.php file and thought of the one I tested a few years ago. hidef and apc solutions to improve define performance.
My program has different configurations for the development, testing, and production servers. In terms of constants, I use an array to define all the constants that need to be defined, and then detect whether there is an apc_load_constants function. If not, define it in batches. When using apc, every time you add a constant, you need to modify $key to take effect.

Now that the test and production server php have been upgraded to 5.4, the opcode cache uses Zend opcache, and APC is no longer installed. Because the apc user cache is used, I installed apcu additionally, and the usage is exactly the same as apc, so there is no need to change the program at all. However, apcu does not support apc_load_constants and apc_define_constants, so the apc solution cannot be used. I went to the official website and installed the latest version of hidef 0.1.13, stable released on July 12, 2012, more than a year ago.

I wrote a simple program to test the define time. It takes about 2.8ms to run 1000 times. So for a medium-sized website (for example, PHP runs 10 million times a day), if 25 constants are defined per page, it will take about 10000000*25/1000*2.8=700000ms per day, which is 700 seconds. Using hidef can save almost 700s of PHP running time a day.
Let’s take a look at the reading performance. The test reads a constant 1w times, and the values ​​are all 1, which are 37ms and 0.7ms respectively. So if 10 million times a day, an average of 20 constants are used per page, it will take 740 seconds, and using hidef is 14 seconds, well, another more than 700 seconds.
Saving 1,400 seconds of PHP running time a day may be insignificant, but it is always good and worth trying. After all, the chance of defining parameters changing is very small.
When the define parameters need to be modified, just modify the configuration file and then reload php-fpm.

For specific installation methods of hidef, please refer to: Installation and use of hidef, a php extension that improves define performance

Search for "hidef" in Baidu, and the third-ranked website is a website that copied my blog post:( And the installation and use of the PHP extension hidef that I published to improve the performance of define was not found on the first three pages. Apparently it is Baidu has some errors in identifying original content

When searching for "hidef php" on Baidu, that website ranked first, the second was the official website, and mine was third.
gg searches for "hidef php", the first official website, the third is another original article, mine is at the fourth. gg’s recognition is pretty good!

Search "hidef php" on 360, the copy site is the first, mine is the second, and another original article is the third.
Therefore, with the birth of this article, let’s see if we can help rank the first article or this one.


Attached is the program sample code of the original configuration constants:
Copy code The code is as follows:
if (function_exists('apc_load_constants')) {
              function define_array($key, $arr, $case_sensitive = false) {
If (!apc_load_constants($key, $case_sensitive)) {
                          apc_define_constants($key, $arr, $case_sensitive);
                }

         }
         } else {
              function define_array($key, $arr, $case_sensitive = false) {
foreach ($arr as $name => $value) {
                                                                                                                                                                                                          define($name, $value, $case_sensitive);
                }
            }
}

$constants = array(
'HX' => 1,
'BLOG_URL' => 'http://www.bkjia.com/',
'WWW_URL' => 'http://www.bkjia.com/',
);

define_array('hx_defined',$constants);


Attached is the code for testing define speed.
Copy code The code is as follows:

$t1 = microtime(1);

    $constants = array(
        'hx1'       => 1,
        'hx2'       => '2',
        'hx3'       => '3',
        'hx4'       => '4',
        'hx5'       => '5',
        'hx6'       => '6',
        'hx7'       => '7',
        'hx8'       => '8',
        'hx9'       => '9',
        'hx10'       => '10',
    );

    function define_array($key, $arr) {
        foreach ($arr as $name => $value) {
            define($name.$i, $value);
        }
    }
   
    for($i=0;$i<100;$i ) {
        define_array($i,$constants);
    }
   
   
$t2 = microtime(1);
echo ($t2-$t1)*1000;

//读性能
$t1 = microtime(1);
for($i=0;$i<10000;$i ) {
    $t = hx1;
}   
$t2 = microtime(1);
echo ' '.($t2-$t1)*1000;

$t1 = microtime(1);
for($i=0;$i<10000;$i ) {
    $t = HX;
}   
$t2 = microtime(1);
echo ' '.($t2-$t1)*1000;

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/981351.htmlTechArticlePHP中使用hidef扩展代替define提高性能,hidefdefine 网站需要新加一个常量,打开了本地的config.php文件,想到了几年前测试过的hidef以及apc提升...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template