| 订阅 | 在线投稿
分享
 
 
当前位置: 王朝网络 >> php >> 使用APC缓存优化PHP程序
 

使用APC缓存优化PHP程序

2008-12-19 08:07:49 编辑來源:互联网 繁體版 评论
 
 
  Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。

  APC 官方网站为http://pecl.php.net/package/apc

  Windows下的拓展模块下载地址http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds

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

  1、安装

  以PHP extension 形式安装

  2、配置

  apc.enabled boolean

  apc.optimization optimization

  选项在脚本中可以改变

  APC PHP.ini配置选项详解

  [APC]

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

  apc.cache_by_default = On

  ;SYS

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

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

  apc.enable_cli = Off

  ;SYS

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

  apc.enabled = On

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

  apc.file_update_protection = 2

  ;SYS

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

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

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

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

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

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

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

  apc.filters =

  ;SYS

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

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

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

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

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

  apc.ttl = 0

  ;SYS

  ; 缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。

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

  apc.user_ttl = 0

  ;SYS

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

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

  apc.gc_ttl = 3600

  ;SYS

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

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

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

  ; 设为零将禁用此特性。

  apc.include_once_override = Off

  ;SYS

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

  apc.max_file_size = 1M

  ;SYS

  ; 禁止大于此尺寸的文件被缓存。

  apc.mmap_file_mask =

  ;SYS

  ; 如果使用–enable-mmap(默认启用)为APC编译了MMAP支持,

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

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

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

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

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

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

  apc.num_files_hint = 1000

  ;SYS

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

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

  apc.optimization = 0

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

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

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

  apc.report_autofilter = Off

  ;SYS

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

  apc.shm_segments = 1

  ;SYS

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

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

  ; 你可以尝试增大此值。

  apc.shm_size = 30

  ;SYS

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

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

  apc.slam_defense = 0

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

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

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

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

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

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

  apc.stat = On

  ;SYS

  ; 是否启用脚本更新检查。

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

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

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

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

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

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

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

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

  apc.user_entries_hint = 100

  ;SYS

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

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

  apc.write_lock = On

  ;SYS

  ; 是否启用写入锁。

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

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

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

  apc.rfc1867 = Off

  ;SYS

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

  ; 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

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

  apc_cache_info () 返回缓存信息

  apc_clear_cache() 清除apc缓存内容。

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

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

  apc_load_constants (string Key)。

  取出常量缓存。

  apc_store ( string key, mixed var [, int ttl] )。

  在缓存中保存数据。

  apc_fetch ( string key )。

  获得apc_store保存的缓存内容

  apc_delete ( string key )。

  删除apc_store保存的内容。

  apc的管理:

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

  管理界面功能有:

  1. Refresh Data

  2. View Host Stats

  3. System Cache Entries

  4. User Cache Entries

  5. Version Check
 
 
 
 
上一篇《PHP设置COOKIE保留时间为浏览器进程》
下一篇《使用APC最优化PHP》
 
 
 
 
 
 
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

如何磨出破洞牛仔裤?牛仔裤怎么剪破洞?

把牛仔裤磨出有线的破洞 1、具体工具就是磨脚石,下面垫一个硬物,然后用磨脚石一直磨一直磨,到把那块磨薄了,用手撕开就好了。出来的洞啊很自然的。需要猫须的话调几...

我就是扫描下图得到了敬业福和爱国福

先来看下敬业福和爱国福 今年春节,支付宝再次推出了“五福红包”活动,表示要“把欠大家的敬业福都还给大家”。 今天该活动正式启动,和去年一样,需要收集“五福”...

冰箱异味产生的原因和臭味去除的方法

有时候我们打开冰箱就会闻到一股异味,冰箱里的这种异味是因为一些物质发出的气味的混合体,闻起来让人恶心。 产生这些异味的主要原因有以下几点。 1、很多人有这种习...

 
 
 
Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。 APC 官方网站为[url=http://pecl.php.net/package/apc]http://pecl.php.net/package/apc[/url] Windows下的拓展模块下载地址[url=http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds]http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds[/url] 在 Windows 下,APC 要求有 c:\tmp 目录,并且该目录要对 Web 服务器进程可写。 1、安装 以PHP extension 形式安装 2、配置 apc.enabled boolean apc.optimization optimization 选项在脚本中可以改变 APC PHP.ini配置选项详解 [APC] ; Alternative PHP Cache 用于缓存和优化PHP中间代码 apc.cache_by_default = On ;SYS ; 是否默认对所有文件启用缓冲。 ; 若设为Off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存。 apc.enable_cli = Off ;SYS ; 是否为CLI版本启用APC功能,仅用于测试和调试目的才打开此指令。 apc.enabled = On ; 是否启用APC,如果APC被静态编译进PHP又想禁用它,这是唯一的办法。 apc.file_update_protection = 2 ;SYS ; 当你在一个运行中的服务器上修改文件时,你应当执行原子操作。 ; 也就是先写进一个临时文件,然后将该文件重命名(mv)到最终的名字。 ; 文本编辑器以及 cp, tar 等程序却并不是这样操作的,从而导致有可能缓冲了残缺的文件。 ; 默认值 2 表示在访问文件时如果发现修改时间距离访问时间小于 2 秒则不做缓冲。 ; 那个不幸的访问者可能得到残缺的内容,但是这种坏影响却不会通过缓存扩大化。 ; 如果你能确保所有的更新操作都是原子操作,那么可以用 0 关闭此特性。 ; 如果你的系统由于大量的IO操作导致更新缓慢,你就需要增大此值。 apc.filters = ;SYS ; 一个以逗号分隔的POSIX扩展正则表达式列表。 ; 如果源文件名与任意一个模式匹配,则该文件不被缓存。 ; 注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。 ; 如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存, ; 如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。 apc.ttl = 0 ;SYS ; 缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。 ; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。 apc.user_ttl = 0 ;SYS ; 类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。 ; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。 apc.gc_ttl = 3600 ;SYS ; 缓存条目在垃圾回收表中能够存在的秒数。 ; 此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃, ; 而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此TTL值为止。 ; 设为零将禁用此特性。 apc.include_once_override = Off ;SYS ; 请保持为Off,否则可能导致意想不到的结果。 apc.max_file_size = 1M ;SYS ; 禁止大于此尺寸的文件被缓存。 apc.mmap_file_mask = ;SYS ; 如果使用–enable-mmap(默认启用)为APC编译了MMAP支持, ; 这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为"/tmp/apc.XXXXXX")。 ; 该掩码用于决定内存映射区域是否要被file-backed或者shared memory backed。 ; 对于直接的file-backed内存映射,要设置成"/tmp/apc.XXXXXX"的样子(恰好6个X)。 ; 要使用POSIX风格的shm_open/mmap就需要设置成"/apc.shm.XXXXXX"的样子。 ; 你还可以设为"/dev/zero"来为匿名映射的内存使用内核的"/dev/zero"接口。 ; 不定义此指令则表示强制使用匿名映射。 apc.num_files_hint = 1000 ;SYS ; Web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。 ; 如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。 apc.optimization = 0 ; 优化级别(建议值为 0 ) 。 ; 正整数值表示启用优化器,值越高则使用越激进的优化。 ; 更高的值可能有非常有限的速度提升,但目前尚在试验中。 apc.report_autofilter = Off ;SYS ; 是否记录所有由于early/late binding原因而自动未被缓存的脚本。 apc.shm_segments = 1 ;SYS ; 为编译器缓冲区分配的共享内存块数量(建议值为1)。 ; 如果APC耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值, ; 你可以尝试增大此值。 apc.shm_size = 30 ;SYS ; 每个共享内存块的大小(以MB为单位,建议值为128~256)。 ; 有些系统(包括大多数BSD变种)默认的共享内存块大小非常少。 apc.slam_defense = 0 ;SYS(反对使用该指令,建议该用apc.write_lock指令) ; 在非常繁忙的服务器上,无论是启动服务还是修改文件, ; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。 ; 这个指令用于设置进程在处理未被缓存的文件时跳过缓存步骤的百分率。 ; 比如设为75表示在遇到未被缓存的文件时有75%的概率不进行缓存,从而减少碰撞几率。 ; 鼓励设为 0 来禁用这个特性。 apc.stat = On ;SYS ; 是否启用脚本更新检查。 ; 改变这个指令值要非常小心。 ; 默认值 On 表示APC在每次请求脚本时都检查脚本是否被更新, ; 如果被更新则自动重新编译和缓存编译后的内容。但这样做对性能有不利影响。 ; 如果设为 Off 则表示不进行检查,从而使性能得到大幅提高。 ; 但是为了使更新的内容生效,你必须重启Web服务器。 ; 这个指令对于include/require的文件同样有效。但是需要注意的是, ; 如果你使用的是相对路径,APC就必须在每一次include/require时都进行检查以定位文件。 ; 而使用绝对路径则可以跳过检查,所以鼓励你使用绝对路径进行include/require操作。 apc.user_entries_hint = 100 ;SYS ; 类似于num_files_hint指令,只是针对每个不同用户而言。 ; 如果你不能确定,则设为 0 。 apc.write_lock = On ;SYS ; 是否启用写入锁。 ; 在非常繁忙的服务器上,无论是启动服务还是修改文件, ; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。 ; 启用该指令可以避免竞争条件的出现。 apc.rfc1867 = Off ;SYS ; 打开该指令后,对于每个恰好在file字段之前含有APC_UPLOAD_PROGRESS字段的上传文件, ; 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 apc的用法比较简单,只有几个函数,列举如下。 apc_cache_info () 返回缓存信息 apc_clear_cache() 清除apc缓存内容。 默认(无参数)时,只清除系统缓存,要清除用户缓存,需用‚user‘参数。 apc_define_constants ( string key, array constants [, bool case_sensitive] ) 将数组constants以常量加入缓存。 apc_load_constants (string Key)。 取出常量缓存。 apc_store ( string key, mixed var [, int ttl] )。 在缓存中保存数据。 apc_fetch ( string key )。 获得apc_store保存的缓存内容 apc_delete ( string key )。 删除apc_store保存的内容。 apc的管理: 到pecl.php.net下载apc源码包有个apc.php,copy到你的web server可以访问到的地方,浏览即可访问。 管理界面功能有: 1. Refresh Data 2. View Host Stats 3. System Cache Entries 4. User Cache Entries 5. Version Check
󰈣󰈤
 
 
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
可爱小魔女
夏日小桃红
琦吖囡半熟乖巧清新写真
天使的微笑
痞子的甘南日记
疑是银河落九天
雪域坝上四——纯美色
冬日恋歌——西城杨柳弄轻柔
 
>>返回首页<<
 
 
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 热帖排行
 
 
 
 
©2005- 王朝网络 版权所有