隨著氣候變化成為一個關(guān)鍵的全球問題,軟件開發(fā)人員和DevOps 專家也開始反思他們自己的行業(yè),以幫助減少該行業(yè)對氣候的影響。在這個大背景下,靜態(tài)分析工具可以我們提供怎樣的幫助呢?
CI/CD 對軟件開發(fā)的好處
在過去幾年中,軟件開發(fā)的主要改進之一是引入了持續(xù)集成(CI) 和持續(xù)部署/交付 (CD),以及 DevOps 自動化。
通過使用CI/CD,開發(fā)人員可以在開發(fā)周期內(nèi)盡快了解,已引入代碼庫的構(gòu)建問題——這通常稱為“左移”。這種做法還可以確保團隊其他成員受到的影響最小,因為違規(guī)更改可以很容易地撤消,因為它們尚未提交到 Master/Main 分支。
在質(zhì)量保證(QA) 團隊和安全團隊或首席安全官 (CSO) 的鼓勵下,DevOps 專業(yè)人員經(jīng)常提倡,將靜態(tài)分析或 SAST(靜態(tài)分析安全測試)工具作為 CI/CD 管道的一部分。這可確保用戶不僅可以從編譯器構(gòu)建問題的早期檢測和修復(fù)中受益,而且還可以從添加到代碼庫中的新安全漏洞、可靠性問題或違反編碼規(guī)范等行為中受益。
但是,CI/CD在處理器時間和能源消耗方面存在不菲的成本。CI/CD 流程消耗的能量非常大——尤其是當您考慮到這些 CI/CD 作業(yè)為每個開發(fā)人員的提交或拉取請求響應(yīng)時,這可能意味著每個開發(fā)人員每天要構(gòu)建多個項目。
如果您隨后在這些流程中添加質(zhì)量或安全檢查,在最好的情況下,這將運行復(fù)雜的全程序、控制和數(shù)據(jù)流靜態(tài)分析引擎,導(dǎo)致構(gòu)建時間線性遞增(通常是標準的2 倍到 10 倍)編譯和鏈接時間),那么每個作業(yè)消耗的機器資源和能源量也會成比例地增加。
更環(huán)保的靜態(tài)分析
多年來,靜態(tài)分析工具開發(fā)人員一直在精益求精地提高工具性能,這通常會在性能上取得小幅提升,以抵消掃描新類別缺陷或進行更深入掃描以提高準確性所導(dǎo)致的偶爾性能下降。
但從根本上說,他們正在處理一個越來越大的問題空間,這通常被稱為“路徑爆炸”。
許多靜態(tài)分析工具使用的一項顯著效率改進方案是增量分析。
增量分析意味著只分析基于依賴樹更改或添加的代碼。在最好的情況下,增量分析意味著只有少數(shù)文件會被重新分析,從而顯著減少時間、資源和能源消耗。
然而,在最壞的情況下,增量分析可能等同于全面分析。此外,增量分析還要求保留以前運行的分析數(shù)據(jù),這并不總是可行的。
Klocwork 如何支持綠色軟件開發(fā)
Klocwork是一種靜態(tài)分析和SAST工具,其具備獨特的設(shè)計理念,通過獨立分析每個節(jié)點,然后生成節(jié)點的“速記”,供其他節(jié)點使用,從而使其能夠有效地執(zhí)行整個程序數(shù)據(jù)流分析。
這種被稱為“差異分析”的能力,比增量分析更進了一步。它不僅允許分析作業(yè)可以幾乎無限地并行化,而且還可以在系統(tǒng)其余部分被隔離的情況下,分析單個新節(jié)點或變更節(jié)點。
差異分析是對一組明確的已更改文件或新文件執(zhí)行的增量分析,不保留先前的運行分析數(shù)據(jù),并且重新分析的代碼可能最少。
換句話說,作為每個開發(fā)人員提交或拉取請求的一部分,差異分析使我們能夠在盡可能短的時間內(nèi)并使用盡可能少的能量,對新的和變更的代碼運行靜態(tài)分析或SAST 檢查。其具備CI 的所有好處,但結(jié)果更快,能耗更低。其包含靜態(tài)分析或 SAST 檢查的 CI/CD 管道的所有好處,但更具備可持續(xù)性。
開始使用Klocwork 開發(fā)綠色軟件
親自了解Klocwork如何幫助您為 C、C++、C#、Java、JavaScript 和 Python 開發(fā)高質(zhì)量的綠色軟件。免費試用獲取私信北匯信息即可~
-
軟件開發(fā)
+關(guān)注
關(guān)注
0文章
645瀏覽量
28685
發(fā)布評論請先 登錄
知識分享 | 敏捷方法在基于模型的軟件開發(fā)項目中的應(yīng)用

水冷負載箱:節(jié)能環(huán)保的測試新選擇
我國軟件開發(fā)者數(shù)量突破940萬
我國軟件開發(fā)者數(shù)量超過940萬
中京電子子公司再度獲評“綠色制造與環(huán)保先進企業(yè)”
TMS320C6201 DSP軟件開發(fā)技術(shù)

【展會邀請】安科瑞電氣誠邀您參加2024年馬來西亞吉隆坡(亞洲)綠色環(huán)保科技展覽會IGEM

ECU電控軟件開發(fā)及測試介紹

揭秘能耗管理系統(tǒng):如何讓你的建筑綠色又省錢?
嵌入式軟件開發(fā)與AI整合

評論