分类广告


推荐文章

  • 没有找到任何内容!
您当前的位置:中国站长下载网络编程PHP专区 → 文章内容

PHP技巧:使用APC缓存优化PHP程序

  • 作者:不详    来源:网络转载    发布时间:2007-12-13 9:04:00
  • 字体大小:

Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。

Www_Chinaz_com

Windows 下,APC 要求有 c:\tmp 目录,并且该目录要对 Web 服务器进程可写。

Chinaz_com

1、安装 中.国.

以PHP extension 形式安装 中.国.站长站

2、配置

中国站.长站

apc.enabled        boolean

中国站长.站

apc.optimization   optimization

Chinaz

选项在脚本中可以改变 中国站长.站

APC PHP.ini配置选项详解

Www_Chinaz_com

[APC] Chinaz~com

; Alternative PHP Cache 用于缓存和优化PHP中间代码

Www^

apc.cache_by_default = On 站.长站

;SYS 中.国.站长站

; 是否默认对所有文件启用缓冲。

站.长站

; 若设为Off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存。 站长.站

apc.enable_cli = Off

中国.站.长站

;SYS

Www~Chinaz~com

; 是否为CLI版本启用APC功能,仅用于测试和调试目的才打开此指令。

Www^

apc.enabled = On 站长.站

; 是否启用APC,如果APC被静态编译进PHP又想禁用它,这是唯一的办法。 中.国站长站

apc.file_update_protection = 2

Www~Chinaz~com

;SYS

站.长站

; 当你在一个运行中的服务器上修改文件时,你应当执行原子操作。

中国站长_站,为中文网站提供动力

; 也就是先写进一个临时文件,然后将该文件重命名(mv)到最终的名字。

站长.站

; 文本编辑器以及 cp, tar 等程序却并不是这样操作的,从而导致有可能缓冲了残缺的文件。 Www~Chinaz~com

; 默认值 2 表示在访问文件时如果发现修改时间距离访问时间小于 2 秒则不做缓冲。 Chinaz~com

; 那个不幸的访问者可能得到残缺的内容,但是这种坏影响却不会通过缓存扩大化。

; 如果你能确保所有的更新操作都是原子操作,那么可以用 0 关闭此特性。 Www.zhuye123.com

; 如果你的系统由于大量的IO操作导致更新缓慢,你就需要增大此值。 站长.站

apc.filters =

;SYS

中国站长_站,为中文网站提供动力

; 一个以逗号分隔的POSIX扩展正则表达式列表。

; 如果源文件名与任意一个模式匹配,则该文件不被缓存。 中国

; 注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。

; 如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存,

中国.站长站

; 如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。 Chinaz~com

apc.ttl = 0 中.国站长站

;SYS 站.长站

; 缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。 中国站长_站,为中文网站提供动力

; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。 中国站长.站

apc.user_ttl = 0

;SYS Www.zhuye123.com

; 类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。

Www~Chinaz~com

; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。 Chinaz_com

apc.gc_ttl = 3600

zhuye123.com

;SYS

; 缓存条目在垃圾回收表中能够存在的秒数。 中.国.

; 此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃, 中.国.站长站

; 而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此TTL值为止。

中.国站长站

; 设为零将禁用此特性。

apc.include_once_override = Off

中国站长_站,为中文网站提供动力

;SYS 中.国站长站

; 请保持为Off,否则可能导致意想不到的结果。 Www.zhuye123.com

apc.max_file_size = 1M

站长.站

;SYS

中国

; 禁止大于此尺寸的文件被缓存。 中.国站长站

apc.mmap_file_mask = 中国.站长站

;SYS

Www_Chinaz_com

; 如果使用–enable-mmap(默认启用)为APC编译了MMAP支持, 中国站长_站,为中文网站提供动力

; 这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为"/tmp/apc.XXXXXX")。

; 该掩码用于决定内存映射区域是否要被file-backed或者shared memory backed。 Www~Chinaz~com

; 对于直接的file-backed内存映射,要设置成"/tmp/apc.XXXXXX"的样子(恰好6个X)。 zhuye123.com

; 要使用POSIX风格的shm_open/mmap就需要设置成"/apc.shm.XXXXXX"的样子。 中.国.站长站

; 你还可以设为"/dev/zero"来为匿名映射的内存使用内核的"/dev/zero"接口。 Chinaz_com

; 不定义此指令则表示强制使用匿名映射。 Www_Chinaz_com

apc.num_files_hint = 1000

;SYS

站长.站

; Web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。

Chinaz~com

; 如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。

[中国站长站]

apc.optimization = 0 Chinaz~com

; 优化级别(建议值为 0 ) 。

; 正整数值表示启用优化器,值越高则使用越激进的优化。

中国.站长站

; 更高的值可能有非常有限的速度提升,但目前尚在试验中。 Chinaz_com

apc.report_autofilter = Off Www^

;SYS

zhuye123.com

; 是否记录所有由于early/late binding原因而自动未被缓存的脚本。 Www.zhuye123.com

apc.shm_segments = 1 中.国.站长站

;SYS Www.zhuye123.com

; 为编译器缓冲区分配的共享内存块数量(建议值为1)。 Chinaz_com

; 如果APC耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值, 中.国站长站

; 你可以尝试增大此值。 Chinaz~com

apc.shm_size = 30 中国站长.站

;SYS

Chinaz

; 每个共享内存块的大小(以MB为单位,建议值为128~256)。

; 有些系统(包括大多数BSD变种)默认的共享内存块大小非常少。

apc.slam_defense = 0 站.长站

;SYS(反对使用该指令,建议该用apc.write_lock指令)

中.国.站长站

; 在非常繁忙的服务器上,无论是启动服务还是修改文件, 中国站.长站

; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。 Www^

; 这个指令用于设置进程在处理未被缓存的文件时跳过缓存步骤的百分率。

zhuye123.com

; 比如设为75表示在遇到未被缓存的文件时有75%的概率不进行缓存,从而减少碰撞几率。

; 鼓励设为 0 来禁用这个特性。

Www^

apc.stat = On

中国.站.长站

;SYS [中国站长站]

; 是否启用脚本更新检查。 Www~Chinaz~com

; 改变这个指令值要非常小心。 Chinaz_com

; 默认值 On 表示APC在每次请求脚本时都检查脚本是否被更新,

中.国站长站

; 如果被更新则自动重新编译和缓存编译后的内容。但这样做对性能有不利影响。

中国.站长站

; 如果设为 Off 则表示不进行检查,从而使性能得到大幅提高。 中国

; 但是为了使更新的内容生效,你必须重启Web服务器。 站长.站

; 这个指令对于include/require的文件同样有效。但是需要注意的是, [中国站长站]

; 如果你使用的是相对路径,APC就必须在每一次include/require时都进行检查以定位文件。 Chinaz~com

; 而使用绝对路径则可以跳过检查,所以鼓励你使用绝对路径进行include/require操作。

站.长站

apc.user_entries_hint = 100 中国站.长站

;SYS

Www.zhuye123.com

; 类似于num_files_hint指令,只是针对每个不同用户而言。 Chinaz_com

; 如果你不能确定,则设为 0 。 站.长站

apc.write_lock = On

中国站长_站,为中文网站提供动力

;SYS

; 是否启用写入锁。 zhuye123.com

; 在非常繁忙的服务器上,无论是启动服务还是修改文件,

Www.zhuye123.com

; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。 中国

; 启用该指令可以避免竞争条件的出现。 站长.站

apc.rfc1867 = Off Www.zhuye123.com

;SYS Chinaz~com

; 打开该指令后,对于每个恰好在file字段之前含有APC_UPLOAD_PROGRESS字段的上传文件,

Www_Chinaz_com

; APC都将自动创建一个upload_的用户缓存条目(就是APC_UPLOAD_PROGRESS字段值)。 中国

3、函数

站.长站

apc_cache_info        - Retrieves cached information (and meta-data) from APC's data store
apc_clear_cache       - Clears the APC cache
apc_define_constants  - Defines a set of constants for later retrieval and mass-definition
apc_delete            - Removes a stored variable from the cache
apc_fetch             - Fetch a stored variable from the cache
apc_load_constants    - Loads a set of constants from the cache
apc_sma_info          - Retrieves APC's Shared Memory Allocation information
apc_store             - Cache a variable in the data store zhuye123.com

apc的用法比较简单,只有几个函数,列举如下。 Www.zhuye123.com

apc_cache_info () 返回缓存信息 Www_Chinaz_com

apc_clear_cache() 清除apc缓存内容。 站.长站

默认(无参数)时,只清除系统缓存,要清除用户缓存,需用‚user‘参数。

apc_define_constants ( string key, array constants [, bool case_sensitive] ) 将数组constants以常量加入缓存。 zhuye123.com

apc_load_constants (string Key)。

取出常量缓存。

apc_store ( string key, mixed var [, int ttl] )。 中国.站.长站

在缓存中保存数据。 Www^

apc_fetch ( string key )。 Www_Chinaz_com

获得apc_store保存的缓存内容

Www_Chinaz_com

apc_delete ( string key )。 Www_Chinaz_com

删除apc_store保存的内容。

apc的管理:

到pecl.php.net下载apc源码包有个apc.php,copy到你的web server可以访问到的地方,浏览即可访问。

中.国.

管理界面功能有:

中国.站.长站

1. Refresh Data

2. View Host Stats Chinaz_com

3. System Cache Entries

4. User Cache Entries

站长.站

5. Version Check

Chinaz

 

zhuye123.com