CPU(中央處理器)作爲計算機系統的運算和控制核心,是信息處理、程序運行的最終執行單元。之前我們解決過TSINGSEE青犀視頻雲邊端架構中國標平臺EasyGBS播放H265編碼視頻後CPU過高的問題(EasyGBS播放H.265編碼如何降低CPU來增加視頻傳輸效率),大家可以瞭解一下。

在正常情況下,只有視頻播放的負荷超過了處理器的負荷,纔會出現CPU過高的提示,但是在我們做easygbs1.4.4版本的時候,發現一個很奇怪的現象,就是平臺沒有視頻在播放,但是出現cpu佔用過高的情況。

經過TSINGSEE青犀視頻研發團隊的排查分析,發現是handleTCPConnection這個函數佔用過高。

進一步排查後發現在handleTCPConnection中,每次tcp讀取錯誤的時候都會創建新的slice來重新讀取,導致內容複雜,處理器負荷過大,出現CPU佔用過高的問題。

因此我們可以將slice的創建放在讀取tcp消息之前,一個鏈接只用一個slice,減少資源佔用。參考代碼如下:

再次接入則顯示一切正常。

EasyGBS視頻平臺只是TSINGSEE青犀視頻雲邊端架構產品中的一個服務,更多視頻解決方案可以聯繫我們瞭解,TSINGSEE青犀視頻均爲大家提供了試用版本,歡迎大家進行測試。

相關文章