php性能调优-如何优化PHP性能?

2023-10-06 0 9,198 百度已收录

1)。 将.htaccess 的内容添加到apache 配置中。 通常我们将.htaccess作为一个文件,放在PHP项目的根目录下,作为URL重写配置等。这样就导致每次HTTP请求都必须先读取.htaccess,导致多了一次文件操作。 通常.htaccess文件的内容不需要更改,因此可以考虑在apache中进行配置并禁用.htaccess文件。

2)。 在PHP程序中,减少使用file_exists等文件操作函数。 在路由框架中判断要引用的文件是否存在。 如果不存在,则会显示错误。 如果存在,则执行文件中的类方法,如:

[php]

为什么不直接请求 $invoke ['path']? 事实上,我们访问的路径(文件)正常情况下是存在的,所以不需要使用file_exists来判断是否存在。 但是访问不存在的文件怎么办? 使用set_error_handler形式进行全局处理。 但我只想对当前引用文件错误做特殊处理,将错误处理留在自己的框架中,而不使用用户的全局错误处理? 它的工作原理如下:

php性能调优-如何优化PHP性能?

[php]

require之前,重置一个错误处理方法A,返回之前设置的错误处理方法; 当require文件不存在时,会执行A,当require正常时,会重置用户的error_handler。

另一种是日志的处理。 可能每次操作日志时都需要判断日志是否存在(不存在则创建)并获取日志大小(单独的日志文件)。 一般来说php性能调优,日志文件存在的可能性较大,所以直接获取文件大小即可。 通过获取日志文件的大小,filesize也可以用来判断文件是否存在。 如果不存在,则创建该文件。 这减少了文件操作方法的使用。 如何在不离开当前进程继续正常执行的情况下,使用filesize获取大小并判断文件是否存在? 你可以想一下,因为filesizing一个不存在的文件会报错。

总之,只要有可能文件存在或者命中率高,就可以考虑不使用file_exists。

3)。 加载类时,使用精确加载和缓存,不要遍历目录文件。 如果在请求中,最好只加载所需的类文件,并且只加载一次。

4). 将文件缓存转换为视频内存缓存。

php性能调优-如何优化PHP性能?

4. 框架的选择

除了前面提到的PHP扩展框架之外,还有很多其他非扩展实现的PHP框架,例如thinkphp、laravel等。 这些框架通用、封装良好、功能齐全,但会消耗一定的性能。 我认为主要原因是加载文件太多,定义变量的方式太多,检测到的东西太多,执行过程太长。 但既然用了,那就不得不接受。 能做的就是优化句型和代码逻辑的细节。 仅就代码执行而言(无需外部调用、数据库连接等),框架的执行时间远远小于应用程序代码执行时间。 如果还使用smarty模块引擎,性能会大打折扣。 但不仅仅是性能方面的考虑,还有很多其他的激励因素值得依赖成熟的框架。 如果你认为性能是一个需要考虑的方面,你可以选择一个更轻量级、耦合度较低的框架,或者只选择必要的组件。

5. 功能组件的使用

php性能调优-如何优化PHP性能?

组合使用需要对整个框架的理解和掌控。

1)。 如果可以选择组件,首选就是路由组件。 它可以轻松路由到指定的控制器模式。 不要做不必要的事情,少用正则匹配,约定优于配置。

2)。 类加载功能。 如上所述,按需准确加载和缓存,并且每个请求只需要一次。 我们项目类的加载非常原始,require_once和new。

3)。 参数校准和安全处理。 其实这个过程成本比较高,但是为了安全还是有必要的。 参数最好按需处理,但有时为了方便,安全过滤还是在入口处全局处理,参数标定可以在控制器模式下处理。

4). Session,只需通过配置将其保存到Redis/memcache等缓存中,或者存储在cookie中。 但按照默认机制,会话初始化(读)和请求结束(写回)会引起两次网络操作。 根据我们的应用场景分析,会话内容不会频繁变化。 如果没有变化,我们可以考虑只读而不回写(因此存在无法更新session变化时间的问题)。 这就需要我们自己实现PHP session。 套接字已插入。仅当有会话更改时,会话存储才会在更改发生时写回。 这样一来,少一次网络操作就可以节省大量的时间。 有些实现的不好,不建议在一次请求中多次连接或者多次操作存储。 另外,与cookieSession结合,即把session加密存储在cookie中php性能调优,session的处理时间也会减少很多。

5)。 查看模板引擎。 如果是API套接字服务,则直接返回数据。 如果是网页,就需要使用模板引擎。 模板引擎也会消耗大量性能。 当然,如果你更喜欢原生态的方式,那是最高效的。 比如smarty庞大而全面,性能低效,很多功能我们无法使用。 我们使用模板引擎。 核心的事情就是html和php的分离,然后是变量和句型的处理。 因此,如果你想享受模板引擎的分离并追求性能,可以参考tmd_tpl。 只有实现了分离,语法上才使用PHP句型,因为如果你想自己实现一套句型,需要大量的查找和替换。 同样在模板引擎中,您可以通过将多个视图文件合并为一个并减少文件操作来进一步优化。

6). 数据库。 使用PDO,ORM使用起来很方便,但是需要一定的时间。 数组是最有效的数据对象。 一般使用短连接,并使用单例连接对象或连接池(某些扩展可以支持这一点)。

其他内容待补充...

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php性能调优-如何优化PHP性能? https://www.wkzy.net/game/198598.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务