軟件性能工程

軟件性能工程 「Software Performance Engineering」

本文使用不到五分鐘的閱讀時間來闡述軟件性能工程裏的關鍵知識點,有助於大家在規劃軟件項目時,通過引入性能工程以提高軟件項目的可用性與市場成功率。簡單來說,軟件性能工程是通過將性能指標維度納入到軟件開發週期中的各關鍵節點,通過事前規劃與各里程碑節點上的關鍵驗收,來追求最終交付的軟件質量是符合設計預期的。

它的價值在哪裏?

在開發軟件時(不包含簡單的腳本類程序),有時候會優先考慮把功能做完,即所謂的Make it run first。此時大部分的精力都放在了功能開發上,對性能指標的考慮是放在第二,甚至第三位的。有時候甚至不考慮性能,只有當客戶反饋了問題之後纔會着手去優化代碼。

這種做事方法就不是一個工程師思維的做事方式,更像是產品經理的思維。先把東西弄出來,試一試,看看效果怎麼樣。這種是在小規模,或者影響可控的範圍內是可行的,但這並不是常態。更常見的情況是,工程師根據比較明確的需求通過項目管理(如敏捷開發)的方式進行工程開發,爲了使交付效率與質量最高,必須遵照一定的工程化方式做事情。性能工程能幫助項目解決的難題如下:

  1. 可避免性能瓶頸是因軟件架構引起的問題,這是典型的低概率但後果嚴重的錯誤。一旦遇到這類問題,通過優化幾處熱點代碼是無法根治的,需要徹底的重構。

  2. 用戶反饋的問題無法通過有效的手段、日誌來定位問題,只能通過成本最高的方式,也就是讓用戶復現問題的方式來定位問題。

  3. 硬件容量規劃時無法根據之前的項目經驗進行量化分析。

SPE Lite版執行流程

具體怎麼執行呢?性能工程是一個完整的工程學科,這篇短文當然無法完整的描述所有的細節,所有的知識點。就着夠用就好的原則,僅介紹最關鍵的執行步驟,讀者可感受下畫風。

  1. 通過用戶調研與競品分析,定義關鍵用戶性能指標,如:吞吐量,傳輸速度,界面刷新幀率

  2. 設計可滿足業務需求與性能指標的軟件架構

  3. 對性能指標建模:如果是排隊系統時,使用排隊論建模工具

  4. 開發性能指標測試工具與測試用例

  5. 開發用於記錄性能指標變化的監控器

    1. 制定性能數據本地存儲規則

    2. 制定性能數據雲端回傳規則

    3. 製作性能數據可視化錶盤

寫在最後

做事講究方法,套路。這些方法,用現在的話來說就是各種思維模式。從之前火熱的互聯網思維,到近幾年流行的產品思維,本質上都是做事方式,其目的也非常簡單,那就是更好地做事。通過更好地做事,纔有可能做出優秀的產品,只有優秀產品纔有可能提高市場競爭力。當產品有了市場競爭力,纔有可能贏得其他方面的成功,比如商業。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章