使用 Amazon CodeWhisperer 优化可持续发展 | 亚马逊网络服务

使用 Amazon CodeWhisperer 优化可持续发展 | 亚马逊网络服务

这篇文章探讨了如何 亚马逊 CodeWhisperer 可以通过提高资源效率来帮助优化代码以实现可持续性。 计算资源高效编码是一种技术,旨在减少处理一行代码所需的能源量,从而帮助公司总体消耗更少的能源。 在这个云计算时代,开发人员现在正在利用开源库和可用的先进处理能力来构建需要高效、高性能和弹性的大规模微服务。 然而,现代应用程序通常包括 大量代码,需要大量计算资源。 尽管直接的环境影响可能并不明显,但次优化的代码通过增加能源消耗、延长硬件使用时间和过时的算法等因素放大了现代应用程序的碳足迹。 在这篇文章中,我们将了解 Amazon CodeWhisperer 如何帮助解决这些问题并减少代码的环境足迹。

Amazon CodeWhisperer 是一款生成式 AI 编码伴侣,可根据现有代码和自然语言注释提出建议,从而加快软件开发速度,从而减少总体开发工作量并腾出时间进行集思广益、解决复杂问题和编写差异化代码。 Amazon CodeWhisperer 可以帮助开发人员简化工作流程、提高代码质量、构建更强大的安全态势、生成强大的测试套件以及编写计算资源友好的代码,从而帮助您优化环境可持续性。 它可作为 Visual Studio 代码工具包, AWS 云9, JupyterLab, 亚马逊SageMaker Studio, AWS Lambda, AWS胶水和 JetBrains IntelliJ IDEA。 Amazon CodeWhisperer 目前支持 Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala。

未优化代码对云计算和应用程序碳足迹的影响

AWS 基础设施的能源效率比接受调查的美国企业数据中心中位数高出 3.6 倍,比欧洲企业数据中心平均能源效率高出 5 倍。 因此,AWS 可以帮助将工作负载碳足迹降低高达 96%。 您现在可以使用 Amazon CodeWhisperer 编写高质量代码,同时减少资源使用和能源消耗,满足可扩展性目标,同时受益于 AWS 节能基础设施。

增加资源使用

未优化的代码可能会导致云计算资源的无效使用。 因此,可能需要更多虚拟机 (VM) 或容器,从而增加资源分配、能源使用以及工作负载的相关碳足迹。 您可能会遇到以下情况的增加:

  • CPU利用率 – 未优化的代码通常包含低效的算法或编码实践,需要过多的 CPU 周期才能运行。
  • 内存消耗 – 未优化代码中低效的内存管理可能会导致不必要的内存分配、释放或数据重复。
  • 磁盘 I/O 操作 – 低效的代码可能会执行过多的输入/输出 (I/O) 操作。 例如,如果从磁盘读取数据或向磁盘写入数据的频率超过必要的频率,则可能会增加磁盘 I/O 利用率和延迟。
  • 网络使用 – 由于无效的数据传输技术或重复通信,优化不佳的代码可能会导致网络流量过多。 这可能会导致更高的延迟和更高的网络带宽利用率。 在网络资源根据使用情况征税的情况下(例如在云计算中),网络利用率的增加可能会导致更高的费用和资源需求。

更高的能耗

具有低效代码的基础设施支持应用程序使用更多的处理能力。 由于低效、臃肿的代码而过度使用计算资源可能会导致更高的能源消耗和热量产生,从而需要更多的能源来冷却。 除了服务器之外,冷却系统、配电基础设施和其他辅助元件也会消耗能源。

可扩展性挑战

在应用程序开发中,可扩展性问题可能是由未优化的代码引起的。 随着任务的增长,此类代码可能无法有效扩展,从而需要更多资源并使用更多能源。 这增加了这些代码片段消耗的能量。 如前所述,低效或浪费的代码会产生大规模的复合效应。

当我们考虑到 AWS 等云提供商在全球拥有数十个数据中心时,优化客户在某些数据中心运行的代码所节省的复合能源就更加复杂了。

Amazon CodeWhisperer 使用机器学习 (ML) 和大型语言模型,根据原始代码和自然语言注释实时提供代码推荐,并提供更高效的代码推荐。 通过使用算法改进、有效的内存管理和减少无意义的 I/O 操作等策略来优化代码,可以提高程序的基础设施使用效率。

代码生成、完成和建议

我们来看看 Amazon CodeWhisperer 可以发挥作用的几种情况。

通过自动开发重复或复杂的代码,代码生成工具可以最大限度地减少人为错误的可能性,同时专注于特定于平台的优化。 通过使用既定的模式或模板,这些程序可以生成更一致地遵循可持续发展最佳实践的代码。 开发人员可以生成符合特定编码标准的代码,从而帮助在整个项目中提供更加一致和可靠的代码。 生成的代码可能会更高效,因为它消除了人类编码变化,并且更易读,从而提高了开发速度。 它可以自动实现减少应用程序大小和长度的方法,例如删除多余的代码、改进变量存储或使用压缩方法。 这些优化有助于内存消耗优化,并通过缩小包大小来提高整体系统效率。

生成式人工智能 有潜力通过优化资源分配使规划更具可持续性。 全面审视应用程序的碳足迹非常重要。 类似的工具 亚马逊CodeGuru Profiler 可以收集性能数据以优化组件之间的延迟。 分析服务检查代码运行并识别潜在的改进。 然后,开发人员可以根据这些发现手动优化自动生成的代码,以进一步提高能源效率。 生成式人工智能、分析和人工监督的结合创建了一个反馈循环,可以不断提高代码效率并减少对环境的影响。

以下屏幕截图显示了 CodeGuru Profiler 在延迟模式下生成的结果,其中包括网络和磁盘 I/O。 在这种情况下,应用程序仍然将大部分时间花费在 ImageProcessor.extractTasks (底下第二行),并且几乎所有时间都是可运行的,这意味着它没有等待任何东西。 您可以通过从 CPU 模式更改为延迟模式来查看这些线程状态。 这可以帮助您很好地了解影响应用程序挂钟时间的因素。 欲了解更多信息,请参阅 使用 Amazon CodeGuru Profiler 减少组织的碳足迹.

图片

生成测试用例

亚马逊 CodeWhisperer 可以通过考虑边界值、边缘情况和其他可能需要测试的潜在问题来帮助建议测试用例并验证代码的功能。 此外,Amazon CodeWhisperer 可以简化为单元测试创​​建重复代码的过程。 例如,如果您需要使用 INSERT 语句创建示例数据,Amazon CodeWhisperer 可以根据模式生成必要的插入。 通过识别和优化资源密集型测试用例或删除冗余测试用例,还可以降低软件测试的总体资源需求。 改进的测试套件有可能通过提高能源效率、减少资源消耗、最大限度地减少浪费和减少工作负载碳足迹,使应用程序变得更加环保。

有关 Amazon CodeWhisperer 的更多实践体验,请参阅 使用 Amazon CodeWhisperer 优化软件开发。 该帖子展示了 Amazon CodeWhisperer 中的代码推荐 亚马逊SageMaker Studio。 它还演示了基于用于加载和分析数据集的注释的建议代码。

结论

在这篇文章中,我们了解了 Amazon CodeWhisperer 如何帮助开发人员编写优化的、更可持续的代码。 Amazon CodeWhisperer 使用先进的 ML 模型来分析您的代码并提供提高效率的个性化建议,从而降低成本并帮助减少碳足迹。

通过建议细微的调整和替代方法,Amazon CodeWhisperer 使开发人员能够在不牺牲功能的情况下显着减少资源使用和排放。 无论您是希望优化现有代码库还是确保新项目的资源效率,Amazon CodeWhisperer 都可以为您提供宝贵的帮助。 要了解有关用于代码优化的 Amazon CodeWhisperer 和 AWS Sustainability 资源的更多信息,请考虑以下后续步骤:


关于作者

使用 Amazon CodeWhisperer 优化可持续发展 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。伊莎杜阿 是旧金山湾区的一名高级解决方案架构师。 她通过了解 AWS 企业客户的目标和挑战来帮助他们成长,并指导他们如何以云原生方式构建他们的应用程序,同时确保弹性和可扩展性。 她对机器学习技术和环境可持续性充满热情。

使用 Amazon CodeWhisperer 优化可持续发展 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。阿贾伊戈文达拉姆 是 AWS 的高级解决方案架构师。 他与使用 AI/ML 解决复杂业务问题的战略客户合作。 他的经验在于为适度到大规模的 AI/ML 应用程序部署提供技术指导和设计协助。 他的知识范围从应用程序架构到大数据、分析和机器学习。 他喜欢边休息边听音乐、体验户外活动以及与亲人共度时光。

使用 Amazon CodeWhisperer 优化可持续发展 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。埃里克·伊里戈延 是 Amazon Web Services 的解决方案架构师,专注于半导体和电子行业的客户。 他与客户密切合作,了解他们的业务挑战,并确定如何利用 AWS 来实现他们的战略目标。 他的工作主要集中在与人工智能和机器学习 (AI/ML) 相关的项目。 在加入 AWS 之前,他是 Deloitte 高级分析实践的高级顾问,负责领导美国各地的多项工作流,重点关注分析和 AI/ML。 Erick 拥有旧金山大学商业学士学位和北卡罗来纳州立大学分析硕士学位。

时间戳记:

更多来自 AWS机器学习