當前位置:
首頁 > 最新 > 「望聞問切」診BUG

「望聞問切」診BUG

眾所周知,產品的好質量是由無數個bug的解決一步步積累而成的,作為推進公司產品研發質量的技術小能手,在提升公司產品質量,解決產品程序bug方面,武漢大千總結出來自己的一套神兵利器——「望聞問切」診bug,今天,小編就跟大家做一次程序診斷的分享。

望診,對程序問題現象進行觀察,通過問題表面,做出程序問題預判,要求人員對各種問題有相當高的敏感度,該問題出現情況如下圖:程序文檔運行一段時間後,數據更新延時。

望診結果:數據刷新延時,目測數據不丟失。

聞診,查看系統內存情況、CPU佔用情況,以及應用程序日誌信息,資料庫訪問情況,是否有對應異常:未發現異常情況。

聞診結果:不是由於資源使用,導致系統數據更新跟不上。

問診,向相關人員,了解系統模塊流轉,以及問題出現的位置,以及對應的場景、頻率。對於一個集成項目,利用研發人員已經定位內容,避免全盤查看代碼,下圖是系統模塊流轉圖:

對應依賴模塊日誌如下:相關研發人員跟蹤日誌情況,數據未在該模塊出現時延時。

問診結果:推送與源數據未出現延時情況,問題應該出現在數據接收和展示模塊。

切診,根據前面診斷情況,直接進行代碼跟蹤,調試,在前面過程中,判定可能接收消息有問題,也可能處理消息存在延時。

界面展示採用QT槽函數處理,之前未接觸QT,對QT槽函數不理解,因此懷疑是丟到消息隊列尚未處理,而消息也在一直處理,也和QT槽函數設計相符。基於QT長久使用框架,不可能存在明顯延時問題,排除該問題,查看數據接收模塊。接收代碼如下:

因為對QT的不熟悉,所以從表面看這塊代碼沒有問題,但是基於TCP消息接收,很容易發生粘包問題,出於對TCP的理解,查詢資料,發現該模塊無法接收所有消息,更新一下,調整為:

上線運行7*24小時,也未出現一秒延遲,病灶移除。

切診結果:TCP接收數據方式未處理數據粘包。

望、聞、問、切的過程中,最重要的是信心和學習,任何人都不可能把技能覆蓋到各個角落,相信自己,資訊時代,配合科學方法,讓程序遠離bug之痛。

聯繫我們:

構架師:瓮輝輝

地址:湖北省武漢市洪山區佳園路2號高科大廈1228室

標星 置頂美亞柏科

一秒找到美美

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 美亞柏科 的精彩文章:

僅30席電子存證機遇與挑戰研討會報名開放!
什麼是開放中國?