PHP程序加速探索[9]--加速--函数缓存输出 PEAR cache

原创 2004年08月24日 23:50:00

函数缓存输出 PEAR cache

PEAR除了可以对输出的内容进行缓存处理外,还可以将对某个函数的调用结果缓存起来。这是个很有趣的功能,如果你的程序要频繁使用到某个函数,而且调用的结果相同的话,我建议你不妨试试,特别是当这个函数运行起来比较慢的时候。

下面我们实现对一个执行起来很慢的函数slowFunction()的缓冲调用。

<?php
require_once 'Cache/Function.php';

$cacheDir = './pear_cache/';
$cache = new Cache_Function('file',array('cache_dir' => $cacheDir));
$arr = array('苹果', '','西瓜');
$cache->call('slowFunction', $arr);
echo
'<BR>';

$arr = array('苹果', '','西瓜');
slowFunction($arr);

function
slowFunction($arr = null)
{
    echo
"一个执行起来很慢的函数 :( <br>";
    echo
"当前时间是 " . date('M-d-Y H:i:s A', time()) . '<br>';
    foreach (
$arr as $fruit)
    {
        echo
"我吃了一个 $fruit <br>";
    }
)

?>

       以下是示例的脚本执行结果:

一个执行起来很慢的函数 :(
当前时间是 Jul-28-2004 17:15:57 PM
我吃了一个 苹果
我吃了一个
我吃了一个 西瓜

一个执行起来很慢的函数 :(
当前时间是 Jul-28-2004 17:17:55 PM
我吃了一个 苹果
我吃了一个
我吃了一个 西瓜

代码中,Cache/Function.php类用来执行函数缓冲功能。$cache变量是一个Cache_Function对象,使用基于文件的函数缓存,存入$cacheDir目录。要缓存一个函数调,Cache_Function对象$cachecall()方法要像这样使用:$cache->call(slowFunction, $arr);

这里,slowFunction()函数被调用,参数为一个数组$arr,这个函数被缓存在$cacheDir目录下的一个文件里。任何在此之后的对这个函数的调用,将会由$cache->call()返回该函数执行的结果。

函数缓存和使用方法和内容缓存很相似,不再多说,具体请查看PEAR手册。

版权声明:本文为博主原创文章,未经博主允许不得转载。

MaxIO智能缓存加速技术

MaxIO是一款SSD智能缓存加速软件,能够透明对传统存储进行性能加速。本文是MaxIO的技术白皮书,重点剖析其架构原理,并对MaxIO特性和局限性作了简要阐述。...
  • liuben
  • liuben
  • 2017年02月05日 20:17
  • 2091

CDN与缓存加速有什么区别?

对于cdn加速可能网站的经营者们都不是陌生,它是内容分发网络,通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层虚拟网络。CDN系统能够根据到用户的距离和响应时间等综合信息将用户的请求重...
  • Marvel__Dead
  • Marvel__Dead
  • 2017年11月28日 12:37
  • 118

怎么样使prestashop 运行速度更快

今天,您的访问者只需要1秒就可以离开你的网上商店。像亚马逊这样的顶级网店告诉我们如何竞争和割喉式的电子商务市场。 一个非常有趣的故事和强大的竞争性,是Amazon.com的CEO和创始人杰夫·贝佐斯...
  • fyh2003
  • fyh2003
  • 2015年03月24日 13:37
  • 2018

负载均衡与HTTP加速

1. 负载均衡技术简介   现代企业信息化应用越来越多的采用B/S应用架构来承载企业的关键业务,因此,确保这些任务的可靠运行就变得日益重要。随着越来越多的企业实施数据集中,应用的扩展性、安全性和可靠...
  • jeff6666
  • jeff6666
  • 2015年11月17日 22:04
  • 491

先锋缓存类(极度加速ASP和提高执行效率)

clsCache 公共属性  引用内容:  valid   返回是否有效。true表示有效,false表示无效。只读。   Version  获取类的版本信息。只读。...
  • lishimin1012
  • lishimin1012
  • 2015年12月31日 11:24
  • 868

部分opencv中的GPU加速函数(中文翻译)

由于项目需要,翻译了一部分可以用于我现在项目的opencv函数,记录于此,原始英文文档来自于http://blog.csdn.net/mtt_sky/article/details/42607839。...
  • pc9803
  • pc9803
  • 2017年10月30日 14:58
  • 81

Chromium硬件加速渲染的OpenGL上下文创建过程分析

在Chromium中,WebGL端、Render端和Browser端的GPU命令都是通过GPU进程中的一个GPU线程来执行的。这三端的GPU命令是独立执行的,不能相互发生影响。为了达到这个目的,GPU...
  • Luoshengyang
  • Luoshengyang
  • 2015年11月02日 01:00
  • 10508

搞定INTEL快速存储技术(用SSD硬盘做缓存加速)

给朋友买了个联想 ideapad s400超级本,还真是锻炼我的idea啊,原机不带WIN7系统,所以只好自己动手装WIN7,并打开24G SSD硬盘做缓存。    一、用常规方法GHOST了一...
  • h4ck0ne
  • h4ck0ne
  • 2016年01月23日 17:44
  • 1499

加速梯度下降法

Nesterov’s Accelerated Gradient Descent一般的梯度下降算法的收敛速率为 o(1/t)o(1/t),tt表示迭代的次数。但是人们已经证明了随着迭代次数tt的增加...
  • xuluhui123
  • xuluhui123
  • 2016年11月14日 13:12
  • 2032

架设Squid代理作为WEB缓存加速

在局域网的路由服务器中假设Squid代理来统一管理并加速内网机器对外部网络的访问速度。...
  • tzdwsy
  • tzdwsy
  • 2016年02月04日 16:12
  • 2383
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP程序加速探索[9]--加速--函数缓存输出 PEAR cache
举报原因:
原因补充:

(最多只允许输入30个字)