0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

绿色环保又节能,软件开发居然也可以

北汇信息POLELINK 2022-11-09 08:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着气候变化成为一个关键的全球问题,软件开发人员和DevOps 专家也开始反思他们自己的行业,以帮助减少该行业对气候的影响。在这个大背景下,静态分析工具可以我们提供怎样的帮助呢?

CI/CD 对软件开发的好处

在过去几年中,软件开发的主要改进之一是引入了持续集成(CI) 和持续部署/交付 (CD),以及 DevOps 自动化。

通过使用CI/CD,开发人员可以在开发周期内尽快了解,已引入代码库的构建问题——这通常称为“左移”。这种做法还可以确保团队其他成员受到的影响最小,因为违规更改可以很容易地撤消,因为它们尚未提交到 Master/Main 分支。

在质量保证(QA) 团队和安全团队或首席安全官 (CSO) 的鼓励下,DevOps 专业人员经常提倡,将静态分析或 SAST(静态分析安全测试)工具作为 CI/CD 管道的一部分。这可确保用户不仅可以从编译器构建问题的早期检测和修复中受益,而且还可以从添加到代码库中的新安全漏洞、可靠性问题或违反编码规范等行为中受益。

但是,CI/CD在处理器时间和能源消耗方面存在不菲的成本。CI/CD 流程消耗的能量非常大——尤其是当您考虑到这些 CI/CD 作业为每个开发人员的提交或拉取请求响应时,这可能意味着每个开发人员每天要构建多个项目。

如果您随后在这些流程中添加质量或安全检查,在最好的情况下,这将运行复杂的全程序、控制和数据流静态分析引擎,导致构建时间线性递增(通常是标准的2 倍到 10 倍)编译和链接时间),那么每个作业消耗的机器资源和能源量也会成比例地增加。

更环保的静态分析

多年来,静态分析工具开发人员一直在精益求精地提高工具性能,这通常会在性能上取得小幅提升,以抵消扫描新类别缺陷或进行更深入扫描以提高准确性所导致的偶尔性能下降。

但从根本上说,他们正在处理一个越来越大的问题空间,这通常被称为“路径爆炸”。

许多静态分析工具使用的一项显着效率改进方案是增量分析。

增量分析意味着只分析基于依赖树更改或添加的代码。在最好的情况下,增量分析意味着只有少数文件会被重新分析,从而显著减少时间、资源和能源消耗。

然而,在最坏的情况下,增量分析可能等同于全面分析。此外,增量分析还要求保留以前运行的分析数据,这并不总是可行的。

Klocwork 如何支持绿色软件开发

Klocwork是一种静态分析和SAST工具,其具备独特的设计理念,通过独立分析每个节点,然后生成节点的“速记”,供其他节点使用,从而使其能够有效地执行整个程序数据流分析。

这种被称为“差异分析”的能力,比增量分析更进了一步。它不仅允许分析作业可以几乎无限地并行化,而且还可以在系统其余部分被隔离的情况下,分析单个新节点或变更节点。

差异分析是对一组明确的已更改文件或新文件执行的增量分析,不保留先前的运行分析数据,并且重新分析的代码可能最少。

换句话说,作为每个开发人员提交或拉取请求的一部分,差异分析使我们能够在尽可能短的时间内并使用尽可能少的能量,对新的和变更的代码运行静态分析或SAST 检查。其具备CI 的所有好处,但结果更快,能耗更低。其包含静态分析或 SAST 检查的 CI/CD 管道的所有好处,但更具备可持续性。

开始使用Klocwork 开发绿色软件

亲自了解Klocwork如何帮助您为 C、C++C#Java、JavaScript 和 Python 开发高质量的绿色软件。免费试用获取私信北汇信息即可~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件开发
    +关注

    关注

    0

    文章

    711

    浏览量

    30146
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    知识分享 | ISO 25119标准在农业机械软件开发中的应用

    知识分享在知识分享栏目中,我们会定期与读者分享来自MES模赛思的基于模型的软件开发相关Know-How干货,关注公众号,随时掌握基于模型的软件设计的技术知识。ISO25119标准在农业机械软件开发
    的头像 发表于 04-08 10:03 113次阅读
    知识分享 | ISO 25119标准在农业机械<b class='flag-5'>软件开发</b>中的应用

    网络分析仪程控软件开发工具平台介绍

    在射频测试领域,矢量网络分析仪(以下简称“网分”)作为核心测量设备,广泛应用于通信、半导体、航空航天等行业的滤波器、放大器、天线等器件测试。随着测试需求的自动化、智能化升级,网分程控软件开发成为提升
    的头像 发表于 03-06 18:05 959次阅读
    网络分析仪程控<b class='flag-5'>软件开发</b>工具平台介绍

    嵌入式软件开发工具市场新动向:订阅制趋势下的中国开发者选择

    面对软件业从永久授权模式广泛转向订阅制的行业趋势,作为行业两大主流嵌入式软件开发工具,即Keil MDK与IAR Embedded Workbench推出了不同的市场策略,正在为中国开发
    的头像 发表于 01-30 17:20 912次阅读
    嵌入式<b class='flag-5'>软件开发</b>工具市场新动向:订阅制趋势下的中国<b class='flag-5'>开发</b>者选择

    嵌入式软件开发的 10 个技巧分享

    功使用Agile开发流程开发高质量软件,这一流程可按任务的优先顺序做开发。优先级别最高的任务在指定的时间内首先完成,这被称为迭代。这种方法的好处是
    发表于 12-25 06:04

    ADC模数转换实战:硬件设计与软件开发要点指南!

    ADC硬件设计与软件开发的关键要点,为开发者提供ADC转换的实战指导。 本文将分享硬件参考设计及LuatOS开发相关API,带你快速了解ADC的软硬件实现要点。 01. 模组相关管脚 Air780EPM系列模组与ADC相关的管脚
    的头像 发表于 12-16 13:25 567次阅读
    ADC模数转换实战:硬件设计与<b class='flag-5'>软件开发</b>要点指南!

    CW32嵌入式软件开发的必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备知识包括以下部分: 1 、编程语言 熟练掌握C(C++)语言,这是
    发表于 11-28 07:48

    融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件

    *附件:ai study.zip*附件:融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件.pdf 基于开源鸿蒙编写的ai辅助学习软件
    发表于 11-12 15:38

    芯科科技推出Simplicity Ecosystem软件开发套件

    Silicon Labs(芯科科技)今日在深圳盛大举办享誉业界的Works With开发者大会,同时宣布推出Simplicity Ecosystem软件开发套件,它不仅是下一代模块化的软件开发
    的头像 发表于 10-27 16:45 1555次阅读

    十大北京软件开发公司推荐:有哪些优点和缺点

    十大北京软件开发公司推荐:有哪些优点和缺点
    的头像 发表于 10-04 09:44 4108次阅读
    十大北京<b class='flag-5'>软件开发</b>公司推荐:有哪些优点和缺点

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司
    的头像 发表于 09-30 09:16 2932次阅读
    2025北京<b class='flag-5'>软件开发</b>公司推荐汇总:盘点10家优秀<b class='flag-5'>软件</b>定制<b class='flag-5'>开发</b>公司

    知识分享 | 敏捷方法在基于模型的软件开发项目中的应用

    传统的瀑布式软件开发流程存在诸多局限,这使得应用敏捷原则变得尤为重要,尤其是面对复杂且不断变化的开发环境时。作为最高效的软件开发方法之一,基于模型的开发(MBD)具有诸多优势。将敏捷原
    的头像 发表于 07-16 16:52 1426次阅读
    知识分享 | 敏捷方法在基于模型的<b class='flag-5'>软件开发</b>项目中的应用

    嵌入式软件开发常用的软件有哪些?

    配置STM32微控制器和微处理器硬件和软件设置。同时可以用来写代码编译。 6. VMWare Workstation 嵌入式Linux开发,除了装双系统之外,还
    发表于 07-03 17:06

    基于瑞萨64位MPU RZ/G2L进行32位应用软件开发

    本文主要介绍基于瑞萨64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 2188次阅读
    基于瑞萨64位MPU RZ/G2L进行32位应用<b class='flag-5'>软件开发</b>

    请问从哪里可以获取CCG5 软件开发及Layout注意事项?

    我们准备开发一款雷电4的拓展坞 请问从哪里可以获取CCG5 软件开发及Layout注意事项
    发表于 05-30 06:21

    找电机控制软件开发兼职

    软件开发兼职人员,我现在有一个永磁无刷电机控制,220V,需要有相关经验的人来开发,兼职费用可以议谈,产品是增压泵相关产品,有兴趣给我留言,谢谢
    发表于 05-07 17:43