


Comparison of APC constant definition and PHP define_PHP tutorial
Recently, when I was working on the preliminary code architecture of the cloud platform, I encountered a problem of constant definition speed comparison, so I made a comparison.
The APC extension of PHP has the following description in the PHP manual:
http://cn.php.net/manual/zh/function.apc-define-constants.php
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.
This means that PHP's define function is relatively slow. In a PHP environment with apc enabled, using apc's constant definition method is much faster than define.
Apc constant definition uses the pair of functions apc_define_constants() and apc_load_constants().
Two programs are prepared here, and the running time is tested separately to see the difference:
Code of define function:
$stime=microtime(true);
define('TMP_PATH', '/tmp');
// ...Other definitions, 20 in total
echo API_MAIL;
echo '
';
$etime=microtime(true);
echo $etime-$stime;
?>
apc constant definition code:
$stime=microtime(true);
if(!apc_load_constants('API')){
apc_define_constants('API', array(
'TMP_PATH' => '/tmp',
// ... other definitions, 20
));
}
echo API_MAIL;
echo '
';
$etime=microtime(true);
echo $etime-$stime;
?>
Execution result:
define function:
0.000098943710327148
0.00010895729064941
0.00010585784912109
0.00010395050048828
...
apc constant definition:
0.00010991096496582
0.000039100646972656
0.000042915344238281
0.000041961669921875
...
It can be seen from the results that when the apc constant definition is executed for the first time, it takes about the same time as define; but after the first execution, the subsequent execution time is very small, only one-third of define. The execution time of define is average every time and does not fluctuate much.
From the code analysis, the apc constant definition is to first obtain the constant through the apc_load_constants() function, and then execute apc_define_constants() to define the constant when the constant does not exist. The advantage of this is that the constants are imported into the PHP execution space at once, and there is no need to define each one, so it is more efficient.
Note: In this test, the PHP environment has apc cache turned on, so the test of the define function is also run at the memory level.
This article is from the "Zhenzhong's Technical Notepad" blog

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
