Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76730
  • 博文数量: 21
  • 博客积分: 723
  • 博客等级: 上士
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-28 22:34
文章分类

全部博文(21)

文章存档

2010年(21)

分类:

2010-04-25 22:27:42

全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”,

但我个人觉得应该叫”另一个PHP缓存”.因为这个东西如果叫”可选PHP缓存”,

容易给人一种可要可不要的,不怎么有用的错觉.

APC的主页是:.目前的版本是3.0.14,通过PECL安装,需要php4.3.0或更高版本.

APC的安装:{{{ extension=apc.so }}}

这么一行就行了.APC的使用APC的使用其实倒说不上.APC是个优化器,自安装之日起,

就默默地在后台为您的PHP应用服务了.您的所有PHP代码会被缓存起来.另外,

APC可提供一定的内存缓存功能.但是这个功能并不是十分完美,有报告说如果频繁使用APC缓存的写入功能,

会导致不可预料的错误.如果想使用这个功能,可以看看apc_fetch,apc_store等几个与apc缓存相关的函数.

从PHP5.2开始,APC引入了一个小甜饼,解决了困扰大家已久的大文件上传的进度条问题.

具体请看看我这篇

APC的高级使用

1.缓存期限:APC的缓存分两部分:

系统缓存和用户数据缓存.

系统缓存是自动使用的,是指APC把PHP文件源码的编译结果缓存起来,然后在再次调用时先对比时间标记。

如果未过期,则使用缓存代码运行。

默认缓存3600s(一小时).

但是这样仍会浪费大量CPU时间.

因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).

不过如果这样设置,改运php代码后需要restart一下您的web服务器(比如apache…).

目前对APC的性能测试一般指的是这一层cache;

用户数据缓存由用户在编写php代码时用apc_store和apc_fetch函数操作读取、写入的.

如果量不大的话我建议可以使用一下.

如果量大,我建议使用memcache会更好.

如果要享受APC带来的缓存大文件上传进度的特性,需要在php.ini中将apc.rfc1867设为1,

并且在表单中加一个隐藏域APC_UPLOAD_PROGRESS,

这个域的值可以随机生成一个hash,以确何唯一.

具体例子请参见前面给出的链接.2.状态控制和分析:APC的源码包自带了一个apc.php;

您可以将这个文件上传到web服务器的某个目录下,用浏览器访问,这会显示当前的状态.

我们可以从这里的表格分析当前的缓存状况,作出进一步优化.这是某test站点的状态.

您可以慢慢分析,这个工具会提供很多有用的工具.比如您可以看到哪些文件经常被包含(访问),

您缓存的哪个变量经常被读取,或经常被更新等.最后顺便提一句,有独立报告说,APC的代码缓存、

优化效果要高出zend优化器.就算不是真的,他开源而又免费,实在是一个相当不错的选择.

一般是下载源代码然后phpize来编译安装,安装完以后在加上php.ini里加上

阅读(1776) | 评论(1) | 转发(0) |
0

上一篇:mysql limit优化

下一篇:php global

给主人留下些什么吧!~~

安何2010-05-05 15:06:26