为高负载而生的 PHP 进程管理器 —— PHP-PM (PPM)
49

file

PHP-PM 可以用于php应用程序的进程管理,增压和负载均衡.它使用 ReactPHP 实现php的事件驱动和非阻塞I/O。

它是基于 ReactPHP,最好是工作在基于请求-响应式的框架,像Symfony的HTTPKernel。这样做是为了减少php启动(包括变量声明,加载和解析文件)的时间,减少功能强大的框架的启动时间。想一睹为快就看看性能一节。 PHP-PM启动了一些PHP进程,引导你的应用程序 像Symfony内核) ,把它加载到内存为请求做准备。这就是为什么PHP-PM使你的应用程序快的原因。

在高层次上,PPM的主要特征是:

  • 性能提升达15倍(相对于PHP-FPM,symfony应用)。
  • 集成负载平衡
  • 热代码重新加载(更改PHP文件时)
  • 为易于开发的程序提供的静态文件
  • 支持HttpKernel(symfony / laravel),Drupal(experimental),Zend(experimental)

在撰写本文时,PHP-PM还没有处于黄金时段,但是这种技术是一种非常有趣的方法,它可以在服务于高性能的PHP程序的典型框架之外进行运作。 作者正在研究这个问题,并尝试将PHP中的非阻塞进程效能推到极限。 在我看来,PHP将会更像Java和Node等其他选项,并且像PHP-PM这样的项目似乎是一个很好的解决更高I/O所需性能的方法。 我期待看到像PPM和ReactPHP这样的项目采取PHP。

PHP从5+到7的性能提升了很多,在我看来,未来我们会更加关注它的性能,包括即将发布的PHP版本和那些使用PHP的开源项目。

了解更多

请自行查看 PHP-PM GitHub 库 ,在 README 中了解更多关于怎样运行 PHP-PM 等。

项目的主要贡献者之一, Marc J. Schmidt ,也写了一篇详细的文章:Bring High Performance Into Your PHP App (with ReactPHP) ,这可以更好地帮助你理解PPM中使用的概念。


Practice makes perfect.

原文地址:https://laravel-news.com/php-pm

译文地址:https://laravel-china.org/topics/7839/ph...

本帖已被设为精华帖!
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

?前几天在GitHub上看summer star了就知道要出这篇了

8个月前
motecshine

常驻内存:

  1. 会放大php扩展的内存泄漏问题。
  2. 看他源码使用了Pcntl库,重量级的进程库

也有好处,每次省去ZendVM的bootstrap时间,省去composer autoload的bootstrap时间。

8个月前

还有个叫amphp的项目,比react-php开发更活跃,写一个类似的这样的服务器也很简单,我搞了一个例子,有兴趣的同学可以试试啊 https://github.com/amphp/http-server/issues/263 我写了一个简单的例子在 https://gist.github.com/xcaptain/d3184e2d5c75bea3c420c61872c37a69

2个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!