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緩存區的時間,經過此時間能夠判斷出客戶端是否能夠正常接收數據包,是否存在接收延時

經過更精確的時間數據,能夠實現更細粒度的通訊管理。優化

相關文章
相關標籤/搜索