Swoole 4.5.5 将对 Server 数据收发时间的优化

Commit: https://github.com/swoole/swoole-src/pull/3708/filesgit

4.5.5 正在开发中,还没有发布版本

在以前的版本中,底层提供了connect_timelast_time两项时间信息,单位为秒,表示:github

  • 链接到服务器的时间
  • 最后一次接收数据的时间

在很是复杂实际的项目中,这两项信息是远远不能知足需求的,在最新的版本中咱们进行了优化。缓存

时间精度调整

底层的时间所有改成使用 double 类型,精确到了微秒,包括:创建链接与数据接收、投递、数据。服务器

增长发送和投递时间

Server::getClientInfo() 方法的返回值中增长了3个新的时间字段,精度为微秒:swoole

  • last_recv_time:最近一次接收数据的时间
  • last_dispatch_time:最近一次投递数据的时间,当触发onReceive回调时,读取此信息能够获得,当前的$datamaster进程是什么时间dispatch的,经过判断投递时间和当前时间的差值,能够获得任务在管道中等待的耗时
  • last_send_time:最近一次发送到内核Socket缓存区的时间,经过此时间能够判断出客户端是否能够正常接收数据包,是否存在接收延时

经过更精确的时间数据,能够实现更细粒度的通讯管理。优化

相关文章
相关标签/搜索