- 浏览: 795339 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
aliang032:
文章很赞,有几个缺点:1、是你的服务端是单进程的,如果进程挂了 ...
php socket编程实例详解 -
最佳蜗牛:
最佳蜗牛 写道是不是缺少了一个toolbar.Realize( ...
wxPython写的简易编辑器(原创) -
最佳蜗牛:
是不是缺少了一个toolbar.Realize()?
wxPython写的简易编辑器(原创) -
最佳蜗牛:
2.7.3版本里不能显示工具栏的图标
wxPython写的简易编辑器(原创) -
sogo6:
我怎么安装的也不行? 裸奔啊。。。。。
让TextMate支持中文显示
APC是Alternative PHP Cache的简称,是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。
APC模块的参数配置
Name Default Changeable Changelog apc.enabled 1 PHP_INI_ALL apc.shm_segments 1 PHP_INI_SYSTEM apc.shm_size 30 PHP_INI_SYSTEM apc.optimization 0 PHP_INI_ALL apc.num_files_hint 1000 PHP_INI_SYSTEM apc.ttl 0 PHP_INI_SYSTEM apc.gc_ttl 3600 PHP_INI_SYSTEM apc.cache_by_default On PHP_INI_SYSTEM apc.filters "" PHP_INI_SYSTEM apc.mmap_file_mask "" PHP_INI_SYSTEM apc.slam_defense 0 PHP_INI_SYSTEM apc.file_update_protection 2 PHP_INI_SYSTEM apc.enable_cli 0 PHP_INI_SYSTEM > APC 3.0.6
apc.enabled 布尔型
apc.enabled 可以被设成 0 来禁用 APC。这主要是有用的,当 APC 被静态编译入 PHP 时,因为没有其它方法来禁用它(当编译为
DSO 的时候,可以将 php.ini 中的 extension 行注释掉)。
apc.shm_segments 整型
对编译缓存分配共享内存块的数量。如果APC用光了共享内存,而且你已经设置
apc.shm_size为系统允许的最大值的情况下,你可以试着去提高这个参数的值。
apc.shm_size 整型
每个共享内存块的大小是以MB为单位的。在默认情况下,一些系统(包括大多数BSD变种系统)的共享内存块的大小限制的很低。
apc.optimization 整型
优化等级。设为0则禁用优化,越高的值使用越强有力的优化。期待有适度的速度上的改进。这个还是实验性质的。
apc.num_files_hint 整型
对在你的Web服务器上被包含和请求的不同的源文件的数量的提示。如果你无法确定,设置为0或者省略;这个设置主要可能用于有成千的源文件的站点。
apc.ttl 整型
当一个缓存条目在缓存区的位置被另一个条目需要时,我们需要考虑的是这个缓存条目在缓存区的位置被允许空闲的秒数。将这个参数设置为0意味着你的缓存可能
充满不新鲜的条目,同时导致新的条目无法被缓存。
apc.gc_ttl 整型
缓存条目在垃圾收集列表中存活的秒数。这个值提供了出错保护在执行一个缓存源文件,而同时服务器进程死了的事件中。如果那个源文件被修改,内存分配给旧版
本的缓存条目将不会被回收,直到这个参数设定的TTL值到的时候。设置为0就是禁止这个特性。
apc.cache_by_default 布尔型
默认为On,但可以被设置为Off并和以加号开头的apc.filters配合使用,文件仅仅在匹配过滤器时才被缓存。
apc.filters 字符串
一个以逗号分割的POSIX扩展正则表达式的列表。如果任何模式匹配源文件名,这个文件将不会被缓存。注意用来匹配的文件名是传递给
include/require 的文件名,而不是绝对路径。如果正则表达式的第一个字符是 +
,则这个表达式就意味着任何匹配表达式的文件将会被缓存,如果第一个字符是 - 则任何匹配都不会被缓存。 - 是默认值,所以可以被省略。
apc.mmap_file_mask 字符串
If compiled with MMAP support by using --enable-mmap this is the
mktemp-style file_mask to pass to the mmap module for determing whether
your mmap'ed memory region is going to be file-backed or shared memory
backed. For straight file-backed mmap, set it to something
like/tmp/apc.XXXXXX (exactly 6 Xs). To use POSIX-style shm_open/mmap put
a .shm somewhere in your mask. e.g. /apc.shm.XXXXXX You can also set it
to /dev/zero to use your kernel's/dev/zero interface to anonymous
mmap'ed memory. Leaving it undefined will force an anonymous mmap.
apc.slam_defense 整型
在非常繁忙的服务器上,无论你启动服务还是修改文件,你都会导致一种多进程都试图在同一个时间缓存同一个文件的竞争。这个选项设置了进程跳过试图去缓存一
个未被缓存的文件的百分比。或者可以把这个想象成一个单独进程跳过缓存的机率。例如,设置apc.slam_defense为75就意味着进程有75%的
机率不去缓存未被缓存的文件。所以,设置的越高,越能减少缓存的碰撞机率。设置为0则禁用这个特性。
apc.file_update_protection 整型
当你在一个运行着的服务器上修改文件时,你应该执行原子操作。也就是,先写一个临时文件,当写完后再重命名(mv)这个文件到它的最终位置。许多文本编辑
器,cp,tar和其他一些类似程序都不是这样操作的。这就意味着有机会去访问和(缓存)文件,当这个文件还在被写的情况下。
apc.file_update_protection的设置使得缓存标记新文件的延迟。默认值是2,意味着如果发现文件的修改时间距离访问时间不到2
秒,文件将不会被缓存。访问写到一半的文件的不幸用户将会看到离奇的情况,但至少这种情况不是持续的。如果你确信你经常使用原子操作来更新你的文件,你可
以关闭这个保护通过设置这个参数为0。如果你的系统充满io操作,并导致更新程序花费超过2秒,你可能需要去增大这个值。
apc.enable-cli 整型
大多是为了测试和调试。为CLI版本的PHP开启动APC功能。一般来说,你将不会想到为每一个
CLI请求创建,移植和放弃APC的缓存,但对于各种测试情况,这是很容易的为了CLI版本开启APC。
APC的安装:
一般是从http://pecl.php.net/package/APC下载源代码,然后phpize来编译安装,安装完以后在加上php.ini里加上:
extension=apc.so
同时,记得要在PHP.ini中打开opcode cache的开关:
apc.cache_by_default = on
同时也可以通过apc.filters让APC只对特定范围的动态程序进行opcode缓存。
使用php apc模块需要注意的几点
在maillist中看到Rasmus的一段对于php APC模块的发言。作为APC的作者,他的见解应该是很有参考价值的。
APC will probably be 20-30% faster, but if you are writing to it frequently it can cause problems. The APC cache is best for things that change very rarely. And by very rarely I mean days, not hours or minutes. Because of the way APC does an anonymous file-backed mmap where I unlink the file at startup to get process-death protection, it isn’t easy to get at the cache from a separate standalone command line script. That can be solved by mmap’ing slightly differently, but in the default config your approach won’t work. -Rasmus
就是说APC不适合用于频繁写的场合,你最好只用它来保存那种几天都不会更改的内容。否则出了莫名其妙的问题就不好怎么解释了。
在以前的应用中,我确实有将apc用在频繁写的场合,偶尔会出现内存耗尽,进而引起所有http请求卡死,形式一发不可收拾整个服务器当掉。所以现在我仅仅用apc来缓存opcode的php代码,不在程序中显式的调用它,算是相安无事。
发表评论
-
基于libmemcached,php扩展memcached的安装
2011-03-29 18:23 1651一,为什么要装memcached扩展 memcached ... -
OpenCV和PHP的人脸识别技术
2011-03-15 00:52 4048OpenCV安装之前必须依赖的包:(请先安装好) pkgco ... -
php代码安全:增加这三行php代码的安全,性能和兼容性
2010-10-09 16:42 1314如何改进以下的这行php代码: <? echo(&q ... -
PHP代码安全:register_globals的设置off
2010-10-09 16:29 1411在PHP编码的时候,要考虑到很多安全问题,不然将可能被攻击。下 ... -
PHP 加速器:APC、eAccelerator、XCache比较
2010-09-29 11:24 2706一直想找一些关于PHP加速的文章,偶然看到杀 客 的这篇文 ... -
安装PHP的Parsekit扩展
2010-09-29 09:54 1315安装PHP的Parsekit扩展 从http://pecl. ... -
PHP算法:折半查找法(又称二分查找法)
2010-09-26 13:12 2356二分查找又称折半查找 ,它是一种效率较高的查找方法。 ... -
PHP算法:直接插入排序
2010-09-26 12:56 1365直接插入排序(Straight Insertion Sort) ... -
PHP算法:冒泡排序与快速排序
2010-09-26 12:41 1898写一个排序算法,可以是冒泡排序或者快速排序,假设待排序对象是一 ... -
[转]PHP的错误报告error_reporting
2010-09-25 11:41 1580error_reporting 设定 ... -
PHP正则表达式:将1234567890转换成1,234,567,890 每3位用逗号隔开的形式
2010-09-25 10:52 1708“四项处理”的作用是与字符相匹配,然后根据是否能找到要匹配的字 ... -
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2010-09-25 10:19 4718PHP函数篇详解十进制、二进制、八进制和十六进制互相转 ... -
php socket通信的基础知识
2010-09-25 09:03 7478迷人而又让人容易糊涂的套接字(Sockets)。Sockets ... -
posix和perl标准的正则表达式区别
2010-09-25 08:29 5568正则表达式(Regular Expre ... -
php socket编程实例详解
2010-09-24 23:10 12628让我们以一个基本的例子开始---一个接收输入字符串,处理并返回 ... -
PHP SPL,遗落的宝石
2010-09-24 22:23 1192英文原文:http://www.rafae ... -
PHPER进阶必备知识:详解SQL性能优化十条经验
2010-09-17 22:02 8581.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE ... -
mysql_fetch_array与mysql_fetch_row有什么区别?
2010-09-17 21:54 4052两种查询函数array / row区别 格式:mysql ... -
php 排序函数 sort、rsort、asort、arsort、ksort、krsort的区别
2010-09-17 18:43 34631,快速创建数组的函数range() 比如range()函数 ... -
在smarty模板文件当中,直接使用PHP代码
2010-09-11 23:19 1813smarty允许在模板中直接嵌入 php 脚本. 是否处理这些 ...
相关推荐
**PHP APC配置详解** PHP Alternative PHP Cache (APC) 是一个免费且开源的 PHP 缓存和优化工具,用于加速 PHP 应用程序的运行。它通过存储预编译的 PHP 代码在共享内存中来减少对磁盘的读取,从而提高性能。本文将...
**PHP APC (Alternative PHP Cache) 插件详解** 在PHP开发环境中,APC(Alternative PHP Cache)是一个非常重要的加速器和缓存工具。它能够优化PHP的性能,通过缓存编译后的PHP代码来减少每次请求时的解析时间。...
**PHP 5.3.3 APC扩展模块详解** 在PHP的开发环境中,加速器(如Alternative PHP Cache,简称APC)扮演着至关重要的角色。APC是PHP的一个免费且开源的 opcode 缓存,用于提高PHP脚本的执行速度。在PHP 5.3.3版本中,...
**PHP 5.4 APC 扩展 DLL 文件详解** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适用于Web开发,可以嵌入到HTML中使用。在PHP 5.4版本中,Alternative PHP Cache (APC)是一个非常重要的性能...
【PHP APC缓存配置、使用详解】 PHP APC(Alternative PHP Cache)是一种PHP缓存解决方案,旨在提高PHP应用程序的性能和效率。它通过缓存PHP源码的编译结果,减少了PHP解释器对代码的重复解析和编译,从而提升了...
APC 配置可以通过 `php.ini` 文件进行,下面是一些主要的配置选项及其解释: - `apc.cache_by_default`:开启或关闭默认的文件缓存,设为 `On` 表示开启。 - `apc.enable_cli`:控制 CLI 版本的 APC 是否启用,通常...
【Nginx + PHP-FPM + APC 绝妙组合详解】 在互联网服务领域,Nginx、PHP-FPM(PHP FastCGI Process Manager)和 Alternative PHP Cache (APC) 的结合已经成为一种高效的Web服务器配置模式,尤其适用于高流量网站。...
【Nginx+PHP-FPM+APC 组合详解】 Nginx+PHP-FPM+APC是一种高效的Web服务架构,特别适用于处理高流量的PHP应用。这种组合的优势在于优化资源利用,提高服务器响应速度,减少内存消耗,并提供更好的性能。 首先,...
了解服务器配置和PHP配置文件(php.ini)对于优化性能和解决服务器问题很有帮助。 5. **数据库连接与操作**:PHP常与MySQL、PostgreSQL等数据库系统配合,实现数据的存储和检索。PDO(PHP Data Objects)和mysqli...
3. 性能优化:虽然不支持多线程,但可以通过调整PHP配置、缓存策略(如APC、Memcached)以及数据库优化等方式提升性能。 总的来说,PHPStudy提供的PHP5.2.17 NTS版本为开发者提供了回溯到旧版本PHP的便利,帮助他们...
其中,Alternative PHP Cache (APC) 和 Zend Optimizer+ 的Opcode缓存是两个常用的PHP加速工具。它们能够将PHP代码编译为中间语言(Opcode),减少解释器的工作量,提高执行效率。然而,随着代码更新,有时需要清除...
《PHP 5.6在CentOS系统中的应用与配置详解》 PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适用于Web开发,可嵌入到HTML中使用。PHP 5.6作为其重要的一个版本,在很多现有的项目中仍然被广泛...
**PHP集成环境详解** 在Windows操作系统中搭建PHP开发环境,主要涉及到三个核心组件:Apache HTTP服务器、MySQL数据库管理系统以及PHP脚本解释器。这三者合称为“LAMP”(Linux, Apache, MySQL, PHP)架构在Windows...
3. 内存缓存(Memory Cache):如APC(Alternative PHP Cache)、OPcache(PHP自带的Opcode缓存),它们将编译后的PHP代码存储在内存中,加快代码执行速度。 4. 对象缓存(Object Cache):如PHP的PDO_Memcached扩展...
【QPHP快速phpmvc框架详解】 QPHP是一个针对Windows环境设计的快速PHP MVC(Model-View-Controller)框架,旨在简化开发流程,提高开发效率。本文将深入探讨QPHP框架的核心概念、架构以及如何在实际项目中应用。 ...
《PHP扩展eAccelerator在Windows环境下的安装与配置详解》 PHP作为一种强大的开源脚本语言,在Web开发领域占据着重要地位。为了提升PHP应用程序的性能,开发者常常会使用各种缓存和加速工具,其中eAccelerator就是...
【PHP实现的企业门户网站详解】 PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域,PHP的应用极为广泛。本项目是一个基于PHP实现的企业门户网站,旨在为用户提供一个可定制、可扩展...