“Runtime Settings”:这里展示的是正在运行的apc的配置信息,我们可以根据需求来调整apc参数,参数的设置在php.ini中进行。
apc参数比较多,下面就几个比较常用的参数做下说明:
1 apc.cache_by_default和apc.filters:apc.cache_by_default,是否开启系统缓存,通常跟apc.filters结合使用,用来控制需要进行缓存和不需要缓存的php文件。apc.filters参数的值是一个以逗号分隔的 POSIX 扩展正则表达式的列表,如果正则表达式的第一个字符为+,则匹配的文件都会被缓存,如果为-,则匹配的文件都不会被缓存。
demo1:关闭系统缓存,仅缓存以a和b开头的文件,其他文件不会被缓存
apc.cache_by_default = 0 apc.filters=+a.*.php,+b.*.php
demo2:开启系统缓存,不缓存以a和b开头的文件,其他文件将会被缓存
apc.cache_by_default = 1 apc.filters = -a.*.php,-b.*.php
2 apc.shm_size和apc.shm_segments:apc.shm_size,以 MB 为单位的每个共享内存块的大小。系统缓存和用户缓存共用,可以通过调整该值来改变apc的共享内存块的大小。如果apc.shm_size的值已经设置为系统所能达到的最大值仍然不够用的时候,我们就需要借助apc.shm_segments,该选项的含义为编译器缓存要分配的共享内存块的数目,我们可以通过调整该值来改变共享内存块的数目(但是在测试的时候,该选项并未生效)。
3 apc.stat:用于检测脚本是否更新,默认开启,每次请求脚本的时候都检测脚本是否更新,这样做对性能有不利的影响,如果生产环境中的脚本文件并非频繁更新,我们可以关闭它,这样性能将会大幅提高,缺点就是脚本更新的时候需要重启web服务器(如果是nginx,重启php-fpm)使之生效。
4 apc.ttl和apc.user_ttl:缓存条目在缓冲区允许逗留的秒数。不同之处在于,apc.ttl针对的是系统缓存,apc.user_ttl针对的是用户缓存。测试的时候这两个选项并没有很好的表现,例如设置值为10,按理说10秒如果没有访问缓存条目,这些缓存条目将会被清除,但是10秒过后这些条目却仍然存在,并没有被清除。
5 apc.num_files_hint和apc.user_entries_hint:Web 服务器上的被包含或被请求的不同源文件的数目的大概估计,apc.num_files_hint针对系统缓存,apc.user_entries_hint针对用户缓存。跟缓存时间一样,缓存数量好像也没什么作用,例如数量设置为3,超过3个文件仍会被缓存,不知道为什么。
其他的参数不再做过多的介绍,关于缓存时间和缓存数量或许是打开方式不对,总是不能得到预期的效果,如果有哪位对这几个参数有深入的理解和研究,希望不吝赐教。
小结:
1 apc的官方手册中明确说明,apc有两个主要的配置选项,一个是分配多少内存给apc(选项apc.shm_size),一个是每次请求apc是否检查文件修改(选项apc.stat),可见这两个选项对于apc来说至关重要,有时间可以重点研究下这两项。
2 apc.cache_by_default开启和关闭仅会影响到系统缓存,对于用户缓存无影响。
3 apc的共享内存块是系统缓存和用户缓存共用的。
4 apc 3.1.15-dev版本,php 5.5.10,操作系统centos6.5,设置apc.shm_segments的时候并未生效。
5 apc缓存满的情况下系统缓存和用户缓存表现不同,如果是系统缓存文件在请求的时候达到了缓存上限,则apc会清除除了该请求的所有其他系统缓存文件,如果是用户缓存变量在请求的时候达到了缓存上限,则会清除除了该请求变量外的所有其他用户缓存变量,也就是说系统缓存和用户缓存之间不会相互影响。
以上就介绍了php的apc扩展浅析(二),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP可以轻松创建互动网页内容。1)通过嵌入HTML动态生成内容,根据用户输入或数据库数据实时展示。2)处理表单提交并生成动态输出,确保使用htmlspecialchars防XSS。3)结合MySQL创建用户注册系统,使用password_hash和预处理语句增强安全性。掌握这些技巧将提升Web开发效率。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版