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

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

PGA450-Q1軟件開發(fā)指南

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

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

評(píng)論