• 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:WampDeveloperVersionsPhpphp-5.5.24.0-r1-win32-vc11-standardext

    For PHP 5.5 FCGI:

    C:WampDeveloperVersionsPhpphp-5.5.24.0-r1-win32-vc11-standard-fcgiext

    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.

  • 相关阅读:
    一个例子讲明爬虫请求库requests
    SpringBoot【六】 Shiro
    SpringBoot【五】 Spring Security
    SpringBoot【四】 任务
    Swagger
    SpringBoot【三】 整合 JDBC、Druid、MyBatis
    SpringBoot【二】 SpringBoot 配置
    SpringBoot【一】入门程序及原理分析
    SpingBoot 相关问题:启动 web 项目之后出现 java.lang.UnsatisfiedLinkError: D:Tomcatapache-tomcat-9.0.36in cnative-1.dll
    SpringBoot 相关问题:IDEA 创建 SpringBoot 项目时出现 Initialization failed for 'https://start.spring.io' 问题
  • 原文地址:https://www.cnblogs.com/oxspirt/p/5506512.html
Copyright © 2020-2023  润新知