当前位置: 首页 > news >正文

OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进

OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进

OpenSwoole 26.2.0 是一次重大版本更新,带来了 PHP 8.5 支持、原生 PHP Fiber 协程上下文、io_uring 事件驱动后端、协程内 Xdebug 断点调试、事件循环延迟指标等功能。

升级方式

通过 PECL 安装:

pecl install openswoole-26.2.0

或使用 Docker 镜像:

docker pull openswoole/openswoole:26.2-php8.5-alpine

新特性

PHP 8.5 支持

OpenSwoole 26.2.0 完全兼容 PHP 8.5,支持管道操作符、URI 扩展、Clone With 等新特性。

PHP 原生 Fiber 协程上下文

新增基于 PHP 原生 zend_fiber API 的协程上下文后端,替代 Boost ASM 或 ucontext。该实现支持与 Xdebug、性能分析器及 Fiber 感知扩展的正确集成。

运行时启用:

Co::set(['use_fiber_context' => true]);

或通过 INI 配置:openswoole.use_fiber_context=On

协程内 Xdebug 断点调试

启用 Fiber 上下文后,Xdebug 断点调试可在协程内正常工作。此前版本中"极其危险"的警告提示已被移除。

运行时选择事件驱动后端

支持在运行时选择事件驱动后端。

Co::set(['reactor_type' => OPENSWOOLE_IO_URING]);

新增常量:OPENSWOOLE_EPOLLOPENSWOOLE_KQUEUEOPENSWOOLE_POLLOPENSWOOLE_SELECTOPENSWOOLE_IO_URING

io_uring 事件驱动后端

新增基于 Linux io_uring 的事件驱动实现,使用 IORING_OP_POLL_ADD 作为 epoll 的替代方案。编译时需启用 --enable-io-uring(依赖 liburing)。内核 5.13+ 支持 multishot poll,旧内核自动回退。

io_uring 异步文件 I/O 引擎

专用 io_uring 环形缓冲区处理异步文件操作(open、read、write、fstat、fsync、unlink、rename、mkdir、rmdir),替代线程池方案。不支持的操作用优雅回退至线程池。

事件循环延迟指标

通过 $server->stats() 实现实时事件循环延迟监控。按工作进程、任务进程(启用协程时)及 Reactor 线程(进程模式)暴露 event_loop_lag_msevent_loop_lag_max_msevent_loop_lag_avg_ms 指标。适用于检测阻塞操作导致的事件循环停滞。

协程安全的 exit() 支持

PHP 8.4+ 上,协程内的 exit() 调用会被拦截并抛出 openswoole_exit_exception,防止整个进程终止。

HTTP 解析器迁移至 llhttp

将自定义 openswoole_http_parser 替换为 llhttp 解析器,提升标准兼容性与性能。

Bug 修复

  • 修复反射问题与作用域泄漏(#284):OSW_FUNCTION_ALIAS 导致全局函数在反射中显示为类方法且返回类型损坏,已替换为正确的 PHP_FE/PHP_FALIAS 条目
  • 修复 io_uring 下文件 I/O 挂起:排空与重新武装 single-shot POLL_ADD 之间可能丢失 eventfd 通知的竞态条件
  • 修复文件锁 Bug:非阻塞 flockLOCK_NB)现会在系统调用前正确检查进程内协程锁状态
  • 修复 CPU 亲和性编译检查:在 sched.h 前添加缺失的 _GNU_SOURCE 定义
  • 修复 futex 编译检查:在 linux/futex.h 前添加缺失的 _GNU_SOURCE 定义

破坏性变更

  • 移除 PHP 8.2 支持(最低要求 PHP 8.3)
  • 移除 PHP < 8.0 兼容代码
  • 命名空间规范化:openswoole_*

升级

如需安装 OpenSwoole 或查看其他更新方式,请参考 安装文档 与 更新指南。

安装核心库:

composer require openswoole/core:26.2.0

OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进

http://www.jsqmd.com/news/423701/

相关文章:

  • 一文讲清:Agent、Workflow、MCP的区别是啥?
  • 题解:DIV2 T2调错记
  • 【每天学习一点算法 2026/02/28】无重复字符的最长子串
  • 解锁RAG检索增强生成:如何让大语言模型突破知识瓶颈,精准回答专业问题
  • 互联网大厂Java求职面试实录:从基础到微服务与AI技术
  • 突破3D点云分析瓶颈:PCM如何用线性复杂度的Mamba模型实现性能飞跃
  • 说说水稻育秧盘选购要点,靠谱的厂家排名如何? - 工业推荐榜
  • 细聊洛阳诚信的老旧房改造公司,派轩装饰费用怎么收费 - 工业品牌热点
  • 河北骏诺业务能力怎么样,产品好用吗,价格多少钱? - 工业设备
  • 抖音投流公司费用怎么收,广西性价比高的有哪些 - myqiye
  • 好用的桥梁伸缩缝推荐,云南靠谱的供应商有哪些 - mypinpai
  • 2026年Q1太阳能热水器选购指南:口碑与服务商深度解析 - 2026年企业推荐榜
  • MCP-B (webmcp) 支持浏览器操作的mcp协议
  • 建材行业公认的权威展会有哪些?2026五大展会全解析指南 - 匠言榜单
  • 螺栓生产厂直接供货厂家哪家口碑好,价格实惠吗 - 工业品网
  • 黑龙江辰能新能源|搭贝OA降本70%,跨企审批全搞定! - 搭贝
  • 2026做宣传片制作的公司哪家好?行业口碑之选 - 品牌排行榜
  • 2026年com域名注册多少钱?最新价格及注册指南 - 品牌排行榜
  • 微软UDOP文档理解模型:5分钟快速部署,英文文档智能分析一键搞定
  • 2026口碑好的宣传片制作公司推荐及行业解析 - 品牌排行榜
  • 不定式
  • RVC快速体验:开箱即用的AI变声器,一键部署开启语音克隆之旅
  • 2026年.cn域名注册/续费哪家便宜?高性价比平台推荐 - 品牌排行榜
  • Gemma-3-12B-IT医疗科普应用:医学术语通俗化解释与健康文案生成
  • 2026提供域名注册增值服务的公司推荐 - 品牌排行榜
  • Hunyuan翻译模型部署教程:支持33语种互译详细步骤
  • 2026国内域名注册商推荐:合规服务与性价比之选 - 品牌排行榜
  • 达摩院春联AI效果验证:人工专家评分显示文化内涵得分4.82/5.0
  • 2026无人机培训基地哪家比较专业?行业实力机构推荐 - 品牌排行榜
  • 2026年有专业团队的宣传片制作公司推荐 - 品牌排行榜