Home >Backend Development >PHP Tutorial >eAccelerator speeds up PHP code method parsing

eAccelerator speeds up PHP code method parsing

WBOY
WBOYOriginal
2016-07-25 09:12:52905browse

eAccelerator is really a good thing (its predecessor is truck-mmcache). It is a caching system that works with PHP (supports PHP5) and exchanges data through shared memory or disk files. It is widely used to "encode" PHP source code (less appropriately called "encryption") and cache the intermediate code of PHP execution to speed up. There are many and detailed articles about the installation and use of eA. What I would like to recommend this time is to use it to assist in program design and caching. It provides a set of APIs as follows: It is a very convenient and stable native cache implementation. At present, this part of the design seems to only support shared memory, so it can only be used in Unix-Like OS. Windows is not so lucky. 1. eaccelerator_put($key, $value, $ttl=0) Store $value into the cache with $key as the key name (object type is supported under php4, but it seems that it is not supported in zend2 from the source code). $ttl is the life cycle of this cache, in seconds. Omit this parameter or specify it as 0 Indicates no time limit until the server is restarted and cleared. 2. eaccelerator_get($key) Return the data stored in the corresponding eaccelerator_put() from the cache according to $key. If the cache has expired or does not exist, the return value is NULL. 3. eaccelerator_rm($key) Remove cache based on $key 4. eaccelerator_gc() Remove and clear all expired keys 5. eaccelerator_lock($key) Add a lock operation to $key to ensure data synchronization during multi-process and multi-thread operations. You need to call eaccelerator_unlock($key) to release this lock or wait for the program request to automatically release this lock. For example: ? & Lt;? Php

Eaccelerator_lock ("Count");
Eaccelerator_put ("Count", Eaccelerator_get ("Count"));
? .eaccelerator_unlock($key) Release lock based on $key 7. eaccelerator_cache_output($key, $eval_code, $ttl=0) Cache the output of the $eval_code code for $ttl seconds (the $ttl parameter is the same as eacclerator_put) For Example:
Copy code
8. eaccelerator_cache_result($key, $ eval_code, $ttl=0) Cache the execution result of the $eval_code code for $ttl seconds, (the $ttl parameter is the same as eacclerator_put), similar to cache_output For Example:

Copy code
9. eaccelerator_cache_page($key, $ttl =0) Cache the current full page for $ttl seconds. For Example:

  1. eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30);
echo time();
phpinfo(); ?> ;

Copy code
    10. eaccelerator_rm_page($key) Delete the cache executed by eaccelerator_cache_page(), also the parameter is $key Example, note that it may not work in cli mode.
  1. class test_cache {
var $pro = 'hello';
function test_cache() { echo "Object Created!
n"; }
function func() {

echo ', the world!';

}
function now($t) {
echo date('Y-m-d H:i:s', $t);
    }
  1. }
  2. $tt = eaccelerator_get("test_tt") ;
  3. if (!$tt)
  4. {
  5. $tt = new test_cache;
  6. eaccelerator_put("test_tt", $tt);
  7. echo "no cached!
    n";
  8. }
  9. else {
  10. echo "cached< ;br>n";
  11. }
  12. echo $tt->pro;
  13. $tt->func();
  14. $tt->now(time() + 86400);
  15. ?>
  16. Copy Code
Statement:
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