首页 » 网站建设 » php运行速度技巧_php 实行速度影响成分有哪些

php运行速度技巧_php 实行速度影响成分有哪些

duote123 2024-11-02 0

扫一扫用手机浏览

文章目录 [+]

PHP的利用很广泛,但你一样平常都会听到有人说“PHP性能不好”之类话。
那么PHP到底为什么慢呢?怎么样才算快呢?

PHP的五种运行办法

实在PHP有很多种运行办法,最传统也是大家最演习的便是PHP-FPM,这也是传统的建站办法。
总结一下可以有这些:

php运行速度技巧_php 实行速度影响成分有哪些 php运行速度技巧_php 实行速度影响成分有哪些 网站建设

PHP-FPM传统的建站办法CLI框架,新兴且热门的高性能网络编程方案PHP扩展,利用 扩展开拓你的业务逻辑PHP编译方言serverless做事

这里对以上的说法做个大略的解释,在我其他的文章中基本都讲过,往后有机会系统的为大家先容一下。

php运行速度技巧_php 实行速度影响成分有哪些 php运行速度技巧_php 实行速度影响成分有哪些 网站建设
(图片来自网络侵删)
PHP-FPM传统建站

PHP-FPM(FastCGI Process Manager)是一个PHP FastCGI管理器,常日用作Apache或Nginx的FastCGI赞助程序,可以提高PHP运用程序的性能和稳定性。
利用PHP-FPM,PHP进程可以在后台运行,并通过FastCGI最小化与Web做事器的交互,从而提高性能和减少做事器负载。
PHP-FPM可以配置多个进程池,每个进程池可以有自己的配置选项,例如最小/最大进程数、最大要求数等等。

这是最基本的最传统的建站办法。
优点便是稳,稳如老狗。
同时又不用担心运维,更新程序的时候,只要把代码上传就行了。

CLI框架

便是一些基于命令行的利用EventLoop特性的框架,比如:workerman,Swoole、ReactPHP等等。
这些框架有很多,我也有很多文章都先容过,不再展开讲了。

PHP扩展

PHP的扩展开拓彷佛是一个黑洞,虽然PHP开拓者都知道利用扩展开拓性能会更高,但没有人会这样做。
人们会自然地人为“凭什么要这么做”。
这是由于PHP的扩展开拓本身很困难。
须要节制C措辞的编程能力,须要节制内存管理等根本的编程履历,还要处理跨平台的兼容性,同时“大佬们”也都再说PHP扩展的接口很混乱,别往坑里跳。

实际上,PHP的开拓对PHP开拓者不应该这么难,由于PHP的语法接管C措辞,这使得C的语法会让PHP开拓者很熟习。
至于接口混乱等问题,Swoole的作者出过一个C++的框架,可以利用C++开拓扩展,叫PHP-X。
同时还有一个C++框架叫PHP-CPP,这是个非常棒的项目:

1. PHP-CPP 是一个 C++ 扩展库,用于编写高性能的 PHP 扩展。

2. PHP-CPP 支持 PHP 的全部数据类型,包括数字、字符串、数组和工具等。

3. PHP-CPP 供应了大略易用的 C++ 接口,可以方便地和 PHP 交互。

4. PHP-CPP 的运行时性能高于 PHP 的脚本措辞,减少了函数调用时的开销。

5. PHP-CPP 支持 PHP 5 和 PHP 7,可以知足不同的项目需求。

6. PHP-CPP 的学习曲线较平缓,易于入门,适宜 C++ 开拓者从 PHP 开始学习。

7. PHP-CPP 的开拓者积极更新和掩护,供应了良好的技能支持,可以办理开拓者碰着的问题。

有兴趣的可以看我之前的另一篇文章:

《[PHP-CPP]利用C++来扩展PHP的能力》https://phpreturn.com/index/a62308e4c250c1.html

在我看来他最大的上风便是有一个健全的文档,许多程序员认为编写只有自己能理解的代码是一种名誉。
但他们不这样认为。
PHP-CPP库已经完全地进行了文档化(文档可以在www.php-cpp.com/documentation找到),源代码包含有注释和解释。

如果您须要更多信息或希望查看源代码,那么可以轻松地找到您想要的(只管与Zend引擎有关的内部部分有时会令人困惑,但这是由于Zend引擎非常繁芜)。

以是请不症结怕PHP扩展开拓了,如果你想进阶PHP的下一步,它值得你的关注。

PHP编译方言

这个标题可能让你感到困惑,这是我自己想到的最恰当的描述了,大致的意思是,把PHP的代码编译成其他的“东西”。
比如编译成二进制,编译成.NET平台,编译成C++代码,或者直接把PHP当做node来运行js代码。

我写过另一篇文章,有兴趣的可以理解一下:

《PHP的几个有趣的打开办法:从基本到变态》https://phpreturn.com/index/a623dc0357dead.html

ServerLess

这个观点可能对付PHP开拓者会比较陌生,但是JS的开拓者可能会更理解一些。
实在便是你不用大班事器了,把你的代码传到“平台”里,平台给这个代码分配打算资源。
PHP也有一个专门对ServerLess机制友好的框架叫Bref,有兴趣的可以理解理解。

半总结

以上讲了这么多,是想说,PHP有很多运行办法,这些运行办法都是天差地别的,所带来的性能效果也完备不同,以是这很主要。

但一样平常我们讲PHP的时候,紧张指的还是一样平常情形,下面就讲一讲。

代码质量

什么喝采的代码?是说精良的命名习气?得当的分层封装?还是别的。
这里我特指,实行起来很糟糕的代码,举个例子:

$user_name = Db::table('think_user')->where('id', 1)->value('name');$user_credit = Db::table('think_user')->where('id', 1)->value('credit');

以上代码便是糟糕的例子,我利用了TP的数据库操作库,这没什么问题,tp的orm挺好的,但是它太方便了,导致有的新手会写出这样的代码,查询一个用户的名称和积分,他写了两行。
他没意识到这样会有什么坏处,这就叫糟糕的代码。
逼着更糟糕的是他更新字段的时候,也是更新两次,切实其实气炸人。

程序架构

这个是一个比较玄学的事,倒不是说对性能的影响不好判断,而是说,这种做法是在性能和开拓体验上的一个平衡。
最直不雅观的便是ThinkPHP和Laravel框架之间的比拟,ThinkPHP数据轻量级的框架,Laravel则是重量级的框架,他们之间技能在代码数量和大小上表示出来,在运行速率上也能表示出来。
这实在涉及到开拓者和开拓团队的开拓规范,并不值得大惊小怪。

数据库查询

在前面举了一个数据库操作的例子,实在大多数的瓶颈都发生在数据库上,以是在业务代码中加上缓存,是一个必须要做的事。
你可以想象一下,官网的首页可能要加载多个表的多个数据,如果没有缓存,用户的每次访问都会要求数据库,但实在没必要,如果加上缓存,即便是再多的人,也只是要求一次数据库而已。

PHP版本

一样平常来讲,越新的PHP版本运行速率更快。
这里着重讲一PHP8.0。
PHP8.0是末了一个对老版本代码兼容性比较友好的版本了,升级的PHP8.0基本不会有什么障碍,同时又能在不改动任何代码的情形下,提高10%旁边的运行速率。
我的自媒体网站利用PHP7.4时,首页的访问在110-160毫秒颠簸,利用了PHP8.0之后,最快的访问直接降到70毫秒旁边。
没有任何的代码改动。
当然,利用PHP8.1会更快,但是一样平常会碰着小小的兼容性问题。

同时PHP一定要开启Opcache。
这是传统PHP-FPM的标配,很多人都没意识到这一点,这样不好。

做事器的硬件

显而易见,硬件性能越高,PHP的运行速率就会越快。
但实在,只能说能够承载的访问更多而已,或许每个代码的实行还是之前的那个速率。
如果真的像压榨做事器的性能,最最少得上个“高性能框架”才行。

利用高性能的框架

像Workerman、Swoole、ReactPHP等,都可以利用Linux的高性能特性,详细的这里不展开先容了,这类先容大概多,光我就写过几篇文章了。

总结

实在说到底,PHP开拓者的水平越高,性能越好,对吧。

原文标题:php 实行速率影响成分有哪些?

原文地址:https://phpreturn.com/index/a6429846d6ae85.html

原文平台:PHP武器库

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站许可任何形式的转载/引用文章,但必须同时注明出处。

标签:

相关文章

储物柜设计,打造高效收纳空间的艺术

随着社会的发展和生活节奏的加快,人们对生活品质的追求越来越高。家居储物柜作为家庭生活的重要组成部分,其设计不仅关乎美观,更关乎实用...

网站建设 2024-12-05 阅读0 评论0

PHP825技巧_Python八宗罪看了都说好

小编点击上方 \公众程序员小乐\"大众关注"大众年夜众号, 星标或置顶一起发展 每天凌晨00点00分, 第一韶...

网站建设 2024-12-05 阅读0 评论0