Press "Enter" to skip to content

用亚马逊CodeWhisperer进行可持续优化

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

Amazon CodeWhisperer是一款生成式AI编码助手,通过基于现有代码和自然语言注释提出建议,加快软件开发速度,减少总体开发工作量,为头脑风暴、解决复杂问题和编写差异化代码提供更多的时间。Amazon CodeWhisperer可以帮助开发人员简化工作流程、提高代码质量、构建更强大的安全架构、生成强大的测试集合,并编写计算资源友好的代码,从而帮助您优化环境可持续性。它作为Visual Studio Code的工具包AWS Cloud9,JupyterLab,Amazon SageMaker StudioAWS LambdaAWS Glue和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可以派上用场的情况。

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

生成型人工智能有可能通过优化资源分配来使编程更加可持续。从整体上看待应用程序的碳足迹非常重要。像Amazon CodeGuru Profiler这样的工具可以收集性能数据,以优化组件之间的延迟。性能分析服务会检查代码运行并识别潜在的改进。开发人员随后可以根据这些发现手动优化自动生成的代码,以进一步提高能源效率。生成型人工智能、性能分析和人工审核的结合产生一个反馈循环,可以不断改进代码效率并减少环境影响。

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

image

生成测试案例

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

对于更具实践性的Amazon CodeWhisperer体验,请参阅优化软件开发与Amazon CodeWhisperer。这篇文章展示了Amazon CodeWhisperer在Amazon SageMaker Studio中的代码建议。它还演示了根据加载和分析数据集的评论提供的建议代码。

结论

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

通过提供微调和替代方法,Amazon CodeWhisperer使开发人员能够显著减少资源使用和排放,而不会牺牲功能。无论您是要优化现有的代码库还是确保新项目具有高资源利用率,Amazon CodeWhisperer都可以成为宝贵的辅助工具。要了解更多关于Amazon CodeWhisperer和AWS可持续性资源的代码优化信息,请参考以下下一步:

Leave a Reply

Your email address will not be published. Required fields are marked *