php 缓存之 APC 和apcu

php opcode 缓存 apc.

其实,我自己的理解, php apc 缓存其实分两部分,

  一部分是 缓存 类似于 java 编译的中间的 字节码, 不同于c 语言编译之后的二进制的机器码。 php apc 来缓存php解释器解析

php产生的 opcode, 哈哈。纯属个人的瞎理解,如有错误,请大家指出, 不甚感激。

  还有一部分是 data cache, (key / value map ), 也就是数据缓存, 这点类似于 memerched 和 redis  缓存, 用来存储数据, 将数据库或者文件中的数据暂时缓存起来。以

提高访问速度。

APC的介绍

The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.

但是据我查的资料, apc 由于严重的bug ,php官方已经废弃了。 出现了一个 apcu , apcu的接口和apc 是一样的。

这里是一篇介绍的文章,非常不错 https://www.devside.net/wamp-server/installing-apc-for-php-5-5

这篇文章也是相当的好,大家有时间可以看看:https://support.cloud.engineyard.com/hc/en-us/articles/205411888-PHP-Performance-I-Everything-You-Need-to-Know-About-OpCode-Caches

下面是我自己写的测试代码: 注意, 用了一段时间后可能要清除一下缓存,否则会有效率问题, 方法:apc_clear_cache();

<?php
apc_store(‘name‘, ‘ysr‘);
$name = apc_fetch(‘name‘);
var_dump($name);

  

浏览器访问该页面,是没问题的,输出为:

Installing APC for PHP 5.5 and 5.6

If you need to install and enable the php_apc extension for PHP 5.5 or 5.6, there is a way to accomplish this. But before you do this, there are a few things you have to be aware of:

  1. The last PHP version that had the php_apc extension included in was PHP 5.3. * Newer versions of PHP have replaced APC with php_opcache.
  2. The last APC release was php_apc 3.1.14, and while it worked with PHP 5.5, it was immediately removed due to some serious memory issues that could not be fixed. * php_apc 3.1.14 is not available anywhere, it was removed from all official sources.
  3. The only available release of APC is 3.1.13, and while it’s for both PHP 5.3 and 5.4, it’s only non-beta for 5.3 (i.e., not recommended for PHP 5.4).* php_apc 3.1.13 will not work with PHP 5.5+.

Having said that, APC has two parts to it…

  • The opcode cache part that compiles and caches script code.
  • And the data cache part that stores key/value pairs (e.g., just like memcached).

If your scripts require APC, more than likely they only do so because they use APC’s data cache part. And if you want to run those scripts under PHP 5.5 or 5.6, the APCu extension fully replaces APC, and is fully compatible with APC’s API.

APCu is the APC extension with the opcode cache part removed (which was the source of all APC issues) and the data cache part cleaned up. APCu has the same exact functions and configuration directives as APC – so it can be used as a drop-in replacement.

Also, from what I’ve gathered, APCu performs even better than memcache/memcached on single server setups (which is the case 95% of the time if you are using a WAMP such as WampDeveloper Pro).

Installing APCu For PHP 5.5

1. Download the latest build of APCu from –
http://windows.php.net/downloads/pecl/releases/apcu/

我下载的是

php_apcu-4.0.8-5.4-nts-vc9-x86.zip

For PHP 5.5 Standard:

php_apcu-4.0.7-5.5-ts-vc11-x86.zip

For PHP 5.5 FCGI:

php_apcu-4.0.7-5.5-nts-vc11-x86.zip

2. Extract out files php_apcu.dll and php_apcu.pdb into the proper PHP version package –

For PHP 5.5 Standard:

C:\WampDeveloper\Versions\Php\php-5.5.24.0-r1-win32-vc11-standard\ext\

For PHP 5.5 FCGI:

C:\WampDeveloper\Versions\Php\php-5.5.24.0-r1-win32-vc11-standard-fcgi\ext\

3. Edit php.ini, near end add section:

[APCu]
extension=php_apcu.dll
apc.enabled=1
apc.shm_size=32M
apc.ttl=7200
apc.enable_cli=1
apc.serializer=php

3. Save file. Restart Apache.

时间: 2024-12-10 23:58:20

php 缓存之 APC 和apcu的相关文章

PHP缓存之模块缓存(APC)

APC是Alternative PHP Cache的简称,是 PHP 的一个免费公开的优化代码缓存.它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码. 1.PHP配置APC 开启APC模块,需要将    extension=php_apc.dll     前面的注释去掉即可. APC模块的配置参数如下: apc.enabled  类型:布尔型 apc.enabled 可以被设成 0 来禁用 APC.这主要是有用的,当 APC 被静态编译入 PHP 时,因为没有其它方法来禁用它(

yii 缓存之apc

首先yii CApcCache 实现了一个针对APC的缓存应用组件,常见的缓存操作方法get,set,add,delete,flush... 下面说说配置: 1. 在config/main.php components 组件下添加: 'apccache'=>array( 'class'=>'system.caching.CApcCache' ), 2.下载php_apc.dll,文件放到php/ext 下,搜索时可能会比较麻烦.... 3.在php.ini 中添加php_apc扩展: exte

Apc缓存Opcode(转)

1.PHP执行 PHP的运行阶段也分成三个阶段: Parse.语法分析阶段. Compile.编译产出opcode中间码. Execute.运行,动态运行进行输出. 由于PHP是个解释型语言执行的时候先得把程序读进来,然后由Zend引擎编译成opcode.最后Zend虚拟机顺次执行这些opcode(指令)完成操作.因此我们可 以把这个Opcode缓存起来,下次就能避免重新编译了. APC缓存作用如下: 2 .APC简介 Alternative PHP Cache (APC) 是一个开放自由的PH

PHP核心代码库中的APC缓存说明123

1.APC缓存简介APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”.它为我们提供了缓存和优化PHP的中间代码的框架. APC的缓存分两部分:系统缓存和用户数据缓存. 1.1系统缓存      它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记.如果未过期,则使用缓存的中间代码运行.默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).不过如果

php可选缓存APC

1.APC缓存简介 APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”.它为我们提供了缓存和优化PHP的中间代码的框架. APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记.如果未过期,则使用缓存的中间代码运行.默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).不过如果这样设置,改运

[转]PHP之APC缓存详细介绍(学习整理)

From : http://www.2cto.com/kf/201210/160140.html 1.APC缓存简介APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”.它为我们提供了缓存和优化PHP的中间代码的框架. APC的缓存分两部分:系统缓存和用户数据缓存.系统缓存它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记.如果未过期,则使用缓存的中间代码运行.默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在

PHP APC缓存配置、使用详解

一.APC缓存简介 APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”.它为我们提供了缓存和优化PHP的中间代码的框架. APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记.如果未过期,则使用缓存的中间代码运行.默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).不过如果这样设置,改运

使用APC缓存PHP opcode

1.  关于版本 我的php版本是5.3.10  最开始使用 APC-3.1.8  编译成功,但是 php -m 得不到扩展 , 换成 APC-3.1.9  后解决. 2.  关于配置 apc.cache_by_default = 0 的时候 需要 filters 来匹配开启的文件  一般这两个是配套使用 apc.cache_by_default 默认启用缓存.1表示“启用”,0表示“禁用” apc.filters 根据逗号分隔的POSIX正则表达式判断文件需要缓存还是不需要缓存.以a+开头的正

php apc缓存以及与redis的对比

apc缓存用户数据这个会用, apc_store() 和apc_fetch()函数. 那apc 缓存php 代码,这个怎么用呢? 原文: http://blog.csdn.net/w18704622664/article/details/47132061# ------------------------------------------------------------------------------------------------ APC简介 APC的全称为Alternative