首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP True Async V0.4.0 发布!

PHP True Async V0.4.0 发布!

作者头像
Tinywan
发布2025-10-20 17:16:47
发布2025-10-20 17:16:47
1090
举报
文章被收录于专栏:开源技术小栈开源技术小栈

v0.4.0 发布!

v0.4.0 版本主要聚焦于性能优化、内存管理和事件处理的改进,同时引入了 UDP 和 SSL 支持,并修复了多项 bug。以下是关键更新内容:

核心性能改进

  • • 通过减少调度器 tick 处理中的不必要 LibUV 调用,降低了内核函数调用开销。
  • • 优化 network_async_accept_incoming,在等待前优先尝试 accept() 操作。
  • • 为恢复的协程引入独立队列,提升调度器稳定性。
  • • 在 TrueAsync API 中,用直接 bool 返回替换昂贵的 EG(exception) 检查。

事件描述符缓存

  • • 引入 zend_async_poll_proxy_t 结构,实现高效的文件描述符管理。
  • • 为套接字实现事件处理程序缓存,避免 EventLoop 重建开销。
  • • 添加轮询代理事件聚合,并改进生命周期管理。
  • • 启用协程恢复时自动清理 waker 事件(ZEND_ASYNC_WAKER_CLEAN_EVENTS)。

内存分配优化

  • • 修复 zend_async_event_callback_t 结构中的 ref_count 逻辑。
  • • 优化 waker 触发结构体的内存布局。
  • • 改进异步结构的内存分配模式。
  • • 增强资源清理和生命周期管理。

新功能

  • • 集成完整的异步 UDP 套接字操作,支持 TrueAsync API。
  • • 为套接字流实现 SSL 支持。

Bug 修复

  • • 修复 awaitXXX 函数的 await 迭代器逻辑。
  • • 解决 UNIX-like 系统上的进程等待逻辑问题。
  • • 修复 curl_async.c 中的编译错误。
  • • 改进并发环境下的迭代器状态管理。

要求

  • • LibUV: >= 1.45.0(从 1.44.0 升级,以修复关键定时器 bug)。
  • • PHP: 8.5+。
  • • 支持平台: Linux、macOS、Windows、FreeBSD 等。

破坏性变更

  • • TrueAsync API 函数现在返回 bool 而非 void,以提升性能。
  • • 协程恢复时自动清理 waker 事件。

重要说明

  • • 详细技术变更请参考 CHANGELOG.md:https://github.com/true-async/php-async/blob/v0.4.0/CHANGELOG.md。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • v0.4.0 发布!
    • 核心性能改进
    • 事件描述符缓存
    • 内存分配优化
    • 新功能
    • Bug 修复
    • 要求
    • 破坏性变更
    • 重要说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档