使用 eAccelerator加速PHP代码的方法

eAccelerator 真是一个好东西(它的前身是truck-mmcache)。

简单来讲它是一套配合PHP(支持PHP5)运作的缓存系统,通过共享内存或磁盘文件方式交换数据。

它被广为使用的是PHP源码“编码”(不太贴切的称为“加密”)和缓存PHP执行的中间码以加速。关于 eA 的安装使用的文章已经很多而且也很详细了,这次我想推荐的是用它辅助程序设计缓存,它提供了一组API如下:

是一个非常便捷而又稳定的本机缓存实现方式,目前这部分设计似乎只支持于共享内存,所以只能用于 Unix -Like OS 了,windows的就没这个福气了。

1. eaccelerator_put($key, $value, $ttl=0) 
  将 $value 以 $key 为键名存进缓存(php4下支持对像类型,看源码好像zend2里不支持了),$ttl 是这个缓存的生命周期,单位是秒,省略该参数或指定为 0 表示不限时,直到服务器重启清空为止。

2. eaccelerator_get($key) 
  根据 $key 从缓存中返回相应的 eaccelerator_put() 存进去的数据,如果这项缓存已经过期或不存在那么返回值是 NULL

3. eaccelerator_rm($key) 
  根据 $key 移除缓存

4. eaccelerator_gc() 
  移除清理所有已过期的 key

5. eaccelerator_lock($key) 
  为 $key 加上锁定操作,以保证多进程多线程操作时数据的同步。需要调用 eaccelerator_unlock($key) 来释放这个锁或等待程序请求结束时自动释放这个锁。 
  例如: 
  <?php 
    eaccelerator_lock("count"); 
    eaccelerator_put("count",eaccelerator_get("count")+1)); 
  ?>

6. eaccelerator_unlock($key) 
  根据 $key 释放锁

7. eaccelerator_cache_output($key, $eval_code, $ttl=0) 
  将 $eval_code 代码的输出缓存 $ttl 秒,($ttl参数同 eacclerator_put) 
   For Example: 
  <?php eaccelerator_cache_output('test', 'echo time(); phpinfo();', 30); ?>

8. eaccelerator_cache_result($key, $eval_code, $ttl=0) 
  将 $eval_code 代码的执行结果缓存 $ttl 秒,($ttl参数同 eacclerator_put),类似 cache_output 
   For Example: 
  <?php eaccelerator_cache_result('test', ' time() . "Hello";', 30); ?>

9. eaccelerator_cache_page($key, $ttl=0) 
  将当前整页缓存 $ttl 秒。 
  For Example: 
  <?php 
    eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30); 
    echo time(); 
    phpinfo(); 
  ?>

10. eaccelerator_rm_page($key) 
  删除由  eaccelerator_cache_page() 执行的缓存,参数也是 $key

______________________________________________ 
(作个简单例子看看它的威力,注意在 cli 模式下可能无效!)

<?phpclass test_cache {  var $pro = 'hello';  function test_cache() {    echo "Object Created!<br>/n";  }  function func() {    echo ', the world!';  }  function now($t) {    echo date('Y-m-d H:i:s', $t);  }}$tt = eaccelerator_get("test_tt");if (!$tt){  $tt = new test_cache;  eaccelerator_put("test_tt", $tt);  echo "no cached!<br>/n";}else {  echo "cached<br>/n";}echo $tt->pro; $tt->func();$tt->now(time() + 86400);?>

(0)

相关推荐

  • 在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)

    首先说明一下我的一些参数:操作系统: Windows 7 UltimateWeb Server:Apache 2.2.14Visual Studio: 6.0 (别嫌弃它版本老,即便是在Win7下它还是能用的,当然你用Visual Studio 2008也行) 什么是eAccelerator?eaccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除. 它还有对脚本起优化作用,以加快其执行效

  • php 提速工具eAccelerator 配置参数详解

    eaccelerator.shm_size="32" eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,16,32,64,128都是可以的. eaccelerator.cache_dir="/home/php/tmp" 这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户

  • PHP加速 eAccelerator配置和使用指南

    前一段时间完成了服务器从FreeBSD4.10到6.1的升级,同时把PHP也升级到了最新的PHP5.1.4,Apache也升级到了最新的Apache2.2,为了更好的提高系统的性能考虑对PHP再进行一些优化,前两年接触过MMCache和eAccelerator,尤其对eAccelerator非常喜欢,这次优化也选择了它,下面整理一些文档和大家分享. 目录:一.eAccelerator介绍1.背景2.原理二.安装和配置1.支持平台2.系统要求3.安装4.php.ini文件配置5.验证安装三.使用e

  • win2003服务器之用Zend和eAccelerator在IIS6下同时加速

    它还有对脚本起优化作用,以加快其执行效率.使您的PHP程序代码执效率能提高1-10倍: 官方主页: http://eaccelerator.net 在Zend Optimizer的基础上再运行eAccelerator,我的PHP测试环境主要是Windows的IIS6+php-5.2.13环境,我在本机服务器和远程VMWARE主机上安装都轻松配置成功,但是在一台远程VPS服务器上安装,却怎么都没有安装成功,PHP版本和对应的eAccelerator从PHP5.2.13一直降到PHP5.2.11,

  • 使用eAccelerator加密PHP程序

    使用 eAccelerator 加密PHP程序 复制代码 代码如下: # /usr/local/bin/encoder 执行后会看到简单的使用说明: 复制代码 代码如下: Usage: encoder [options] source_file_name encoder [options] source_file_name... encoder [options] source_directory_name... Options: -s suffix encode files only with

  • 使用 eAccelerator加速PHP代码的目的

    使用 eAccelerator加速PHP代码  eAccelerator 真是一个好东西(它的前身是truck-mmcache).  简单来讲它是一套配合PHP(支持PHP5)运作的缓存系统,通过共享内存或磁盘文件方式交换数据.  它被广为使用的是PHP源码"编码"(不太贴切的称为"加密")和缓存PHP执行的中间码以加速.关于 eA 的安装使用的文章已经很多而且也很详细了,这次我想推荐的是用它辅助程序设计缓存,它提供了一组API如下:  是一个非常便捷而又稳定的本机

  • 用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法

    官方地址:http://www.arnot.info/eaccelerator/选择下载对应您的系统和PHP版本的eAccelerator 2.将其重命名为 eaccelerator.dll (win版) 然后移至您的 php目录下 的 ext文件夹中 3.在c:\php\建立缓存文件夹 temp 修改权限为 user组可读写 3.根据您系统的情况,一般都是PHP 扩展 ISAPI 打开php.ini文件, 找到extension=php_zip.dll, 在下面添加 zend_extensio

  • 实现php加速的eAccelerator dll支持文件打包下载

    选择下载对应您的系统和PHP版本的eAccelerator 2.将其重命名为 eaccelerator.dll (win版) 然后移至您的 php目录下 的 ext文件夹中 3.在c:\php\建立缓存文件夹 temp 修改权限为 user组可读写 3.根据您系统的情况,一般都是PHP 扩展 ISAPI 打开php.ini文件, 找到extension=php_zip.dll, 在下面添加 zend_extension_ts="C:\php\ext\eaccelerator.dll" 

  • 使用 eAccelerator加速PHP代码的方法

    eAccelerator 真是一个好东西(它的前身是truck-mmcache). 简单来讲它是一套配合PHP(支持PHP5)运作的缓存系统,通过共享内存或磁盘文件方式交换数据. 它被广为使用的是PHP源码"编码"(不太贴切的称为"加密")和缓存PHP执行的中间码以加速.关于 eA 的安装使用的文章已经很多而且也很详细了,这次我想推荐的是用它辅助程序设计缓存,它提供了一组API如下: 是一个非常便捷而又稳定的本机缓存实现方式,目前这部分设计似乎只支持于共享内存,所以

  • 详解Android开发中硬件加速支持的使用方法

    Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存.       开启或关闭硬件加速:       由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭.可以在4个级别上打开或者关闭硬件加速:       Application级别:<applicationandroid:hardwareAccelerated="true" ...>  

  • Python加速程序运行的方法

    问题 你的程序运行太慢,你想在不使用复杂技术比如C扩展或JIT编译器的情况下加快程序运行速度. 解决方案 关于程序优化的第一个准则是"不要优化",第二个准则是"不要优化那些无关紧要的部分". 如果你的程序运行缓慢,首先你得使用14.13小节的技术先对它进行性能测试找到问题所在. 通常来讲你会发现你得程序在少数几个热点位置花费了大量时间, 比如内存的数据处理循环.一旦你定位到这些点,你就可以使用下面这些实用技术来加速程序运行. 使用函数 很多程序员刚开始会使用Pyth

  • Java实现等待所有子线程结束后再执行一段代码的方法

    本文实例讲述了Java实现等待所有子线程结束后再执行一段代码的方法.分享给大家供大家参考,具体如下: 今天有一个需求是:在一个方法中开启了一个子线程来执行操作,返回值依赖于子线程的执行结果,这样如果要返回正确的值,就需要开启子线程后 主线程等待子线程,然后子线程执行结束后,主线程再继续执行. 主线程等待子线程需要用到:CountDownLatch 代码如下: import java.util.concurrent.CountDownLatch; public class Counter { pu

  • JS实现直接运行html代码的方法

    本文实例讲述了JS实现直接运行html代码的方法.分享给大家供大家参考,具体如下: 1.实例代码: <!DOCTYPE html> <html> <head> <meta charset='utf-8'/> <title>直接运行 html 代码</title> </head> <body> <textarea style='width:300px;height:200px;' id='txtCode'&

  • 优化 JavaScript 代码的方法小结

    优化 JavaScript 代码 作者: Gregory Baker, GMail 软件工程师 和 Erik Arvidsson, Google Chrome 软件工程师 需要的经验: JavaScript 相关工作知识 客户端脚本能让你的应用更加地动态和活跃, 但是浏览器对代码的解析可能造成效率问题, 而这种性能差异在客户端之间也不尽相同. 这里我们讨论和给出一些优化你的 JavaScript 代码的提示和最佳实践. 使用字符串 字符串连接操作会对 Internet Explorer 6 和

  • php实现转换ubb代码的方法

    本文实例讲述了php实现转换ubb代码的方法.分享给大家供大家参考.具体如下: function ubb2html($content) { global $article; //是否自动识别 if ($article['isparseurl'] == "1") { $content = parseurl($content); } //自动识别结束 $content = eregi_replace(quotemeta("[b]"),quotemeta("&l

  • php快速查找数据库中恶意代码的方法

    本文实例讲述了php快速查找数据库中恶意代码的方法.分享给大家供大家参考.具体如下: 数据库被输入恶意代码,为了保证你的数据库的安全,你必须得小心去清理.有了下面一个超级方便的功能,即可快速清除数据库恶意代码. function cleanInput($input) { $search = array( '@]*?>.*?@si', // Strip out javascript '@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags

  • PHP间隔一段时间执行代码的方法

    本文实例讲述了PHP间隔一段时间执行代码的方法.分享给大家供大家参考.具体分析如下: PHP如何设置每隔一段时间自动执行某段代码?例如定时生成静态文件之类的,这就需要设置休眠时间,即每隔一段时间程序就会调用某段代码. 代码如下: 复制代码 代码如下: ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.  set_time_limit(0); // 执行时间为无限制,php默认执行时间是30秒,可以让程序无限制的执行下去  $interv

随机推荐