高效又节能的 Rust 能帮助拯救地球吗?(rust+)

高效又节能的 Rust 能帮助拯救地球吗?(rust+)

这种编程语言安全又高效,但很难学,会拖累生产力。

去年 12 月,在 AWS Re:invent 大会上,Rust 基金会主席 Shane Miller 和 Tokio 项目负责人 Carl Lerche 提出了使用 Rust 来尽可能减小人类对环境破坏的概念,但他们认为 Rust 陡峭的学习曲线是通向这一目标的道路上最大的障碍。

Miller 还是 AWS 的高级工程经理,而 Lerche 是这家云巨头的首席工程师。

Rust 为什么能拯救地球呢?答案是,更高效的代码需要的运行资源也会更少,这意味着数据中心消耗的能源会更少,而且制造计算设备并将其运送到世界各地的过程中对环境的影响也会更低。

高效又节能的 Rust 能帮助拯救地球吗?(rust+)

Shane Miller 和 Carl Lerche 在 AWS Re:invent 2021 上谈论 Rust 的效率和安全性

“数据中心消耗了……全球能源总量的 1%,”Miller 说道。不过他补充说,由于技术进步以及云计算行业倾向于减少闲置资源的比例等因素,过去 10 年来行业消耗的能源总量几乎没有变化。

他们论点的第二部分是说 Rust 是最高效的编程语言之一。他们引用的证据来源是 2017 年的一篇论文[PDF],这篇论文测量了 27 种编程语言的性能、内存使用量和能源效率,并将 C 列为最高效的语言,而 Rust 紧随其后,能源使用量仅比 C 增加了 3%。根据这项研究,Java 使用的能量几乎是 C 的两倍,C#则是 C 的三倍以上,Python 则需要使用 75 倍以上的能量。

高效又节能的 Rust 能帮助拯救地球吗?(rust+)

根据 2017 年的一项研究项目,按能源效率排名的语言

高效率的 Rust 语言

这项研究是有问题的,正如这次会议上的一些人所观察到的那样:之所以会产生这样的结果,不是因为有些语言不那么关心能源效率,而是因为编程语言有许多实现和编译器,其中一些是相对更高效的。这篇论文还测出来 TypeScript 的效率只有 JavaScript 的十分之一,这也很奇怪,因为它明明可以编译为 JavaScript,并且两种语言编写的代码差不多。

不过这些问题并没有那么重要,因为没有人质疑 Rust 作为一种系统语言的效率的确极为出色这个结论。 而且 Miller 和 Lerche 的论点并不仅仅依赖于这项研究。Miller 还引用了来自 Discord 和 Tenable 的案例研究,这些研究显示了 Rust 带来的显著效率提升。

在 Tenable 案例中,开发人员用 Rust 重写了一个 JavaScript 组件,并实现了 50%的延迟改进、75%的 CPU 使用率下降和 95%的内存使用率下降。“这真是不可思议,”Miller 说。“这可节约了不是一点半点,而且不仅仅是在基础设施方面节省了资源,它还意味着节约大量能源。”

Lerche 说,垃圾收集语言本质上就是效率较低的。垃圾收集是自动化内存管理工作的常用方法,它的机制是识别超出范围的对象并释放它们的内存。

“垃圾收集器必须暂停进程以执行垃圾收集操作。当它暂停时……该服务无法再响应请求,”他说。这意味着 Java、C#和 JavaScript 等语言永远无法像 C 和 Rust 那样兼具高效率和高性能。

为什么不直接使用 C 和 C 呢?原因在于安全性和与内存相关的错误上,Lerche 说,他还引用了一项研究,“C 和 C 软件中所有高度严重的安全漏洞中有 70%是由于[缺乏]内存安全性。”

他说,Rust 是革命性的,因为“Rust 是第一种在保持内存安全性的同时具备高效率的主流编程语言。”Lerche 解释了 Rust 如何通过所有权(ownership)的理念来实现内存安全性,这种理念基于一个称为仿射逻辑的概念,其中每个对象一次只有一个所有者(owner)。

所有权规则会在编译时检查,因此没有运行时开销。并发在 Rust 中也比在 C 或 C 中更容易实现、更安全,从而进一步提升了性能和效率。

看起来这个目标很容易达成。开发人员和 IT 社区需要做的就是迁移到 Rust 即可,代码将运行得更快、更安全,地球的能源使用量会随之下降,AWS 可以关闭他们一半的数据中心(尽管我们在会议期间没有听到最后这句话)。

Rust 很节能,但太难学导致流行不起来

“但是,”Miller 说,“如果我们要实现碳减排目标……我们将需要使用 C 或 Rust 等节能语言编写大多数新软件。但是 Rust 确实有一个“臭名昭著”的学习曲线……我们看到了不少人在采用它,但我们并没有看到它广泛流行开来。

“我看到 Rust 使用率增长最快的场景是通过使用 Rust 可以获得显著性能提升的场景,例如大容量的数据库服务等等;在物联网和嵌入式等资源受限的小型环境中也有很多人用 Rust。但在类似这样的场景里:你正在写一个 JavaScript 应用的后端——我们是很难看到类似的采用率的。”

问题是在 Rust 中编程是很困难的。Java、JavaScript 和 Python 等语言被广泛采用的原因之一是程序员可以更快地提高他们的工作效率。

这就是房间里的大象,“著名的学习曲线,”Miller 说。在最近的一项调查中,“在表示不再使用该语言的工程师中,55%的受访者将学习和生产力列为放弃该语言的原因。经验丰富的工程师需要在主题专家的支持下进行三到六个月的学习,然后才能使用该语言进行高效工作。”

有没有可能抚平学习曲线呢?“学习曲线的部分问题并不是说语言有多难用,而是开发体验存在不足,因此我们看到来自 Java 等语言并尝试使用 Rust 的工程师们说,他们对调试器的体验感到不舒服,”Miller 在回答我们的问题时说。“Rust 的性能分析工具与他们习惯使用的也不一样。这就是我们正在调查的领域。”

“从历史上看,Rust 是作为 C 的替代品出现的,”Lerche 补充道。“它的目标就是那个用例。但是我们发现在更高层次上还有很多应用场景。

“如果你要构建一个服务,你得先看一遍 Rust 写得非常详细的手册,然后了解生命周期、trait 和 trait 模式,以及所有这些属于这种语言一部分的概念,但这些概念和你要编写的服务基本没什么关系。”他说,Rust 项目有计划编写一套简化的文档,其中只包含一些“编写服务所需的知识”。

尽管这些举措会有所帮助,但很难想象 Rust 真的会变得那么简单易用,简单到足够让业务应用程序的开发人员能从 Java 或 JavaScript,或 C#或 Python 切换过来。毕竟他们还是有很多业务问题需要解决,并且用其他那些语言来搞定会快得多。

进一步说,在计算栈的底层,代码可能会是用 Rust 或 C 或 C 编写的,因为对于 Linux 内核或数据库引擎的核心来说,高性能和效率已经是一项要求了。

也就是说,Rust 要发挥作用的关键在于目标环境的软件低效率已经显著增加了客户成本,并且 IT 行业非常关注这种低效率问题才行,而且 Rust 也只是解决低效率问题的一部分手段而已。

原文链接:https://www.theregister.com/2021/11/30/aws_reinvent_rust

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月14日 下午4:20
下一篇 2024年5月14日 下午4:32

相关推荐

  • 科研项目申请是啥意思呀

    科研项目申请是指一种请求机构或个人资助或支持科研项目的过程。这些项目可能是研究特定领域的,例如医学、农业或科学,也可能是探索新技术或新方法的。科研项目申请通常包括研究计划、研究预算…

    科研百科 2025年5月21日
    0
  • 由于工资总额降低,党组织工作经费

    由于工资总额降低,党组织工作经费由于工资总额降低,党组织工作经费减少,党的领导职能不到位,党的政治建设不能顺利完成。由此,党的十九届四中全会提出“党政军民依法有序推进各项工作,党的…

    科研百科 2024年11月28日
    0
  • 上杭县重点项目管理系统

    以上杭县重点项目管理系统 近年来,随着城市化进程的不断加快,政府对重点项目的建设支持力度越来越大。为了加强对重点项目的管理和监督,杭县采用了一种先进的重点项目管理系统。本文将对该系…

    科研百科 2025年1月25日
    0
  • 项目管理报表工具

    项目管理报表工具是用于帮助项目经理、开发人员和其他相关人员协作和沟通的重要工具。这些工具可以提供大量的报表和图表,以显示项目进度、成本、资源使用情况等关键信息。本文将介绍项目管理报…

    科研百科 2024年9月3日
    34
  • 转发:《关于进一步加强固定资产投资项目和区域节能审查管理的意见》政策解读

    转发:浙江发改委官网 固定资产投资项目节能审查制度自2010年实施以来,在控制能耗不合理增长、提高新上项目能效水平等方面发挥了重要作用。行政审批制度改革是当前形势下推进政府部门“放…

    科研百科 2022年7月4日
    406
  • 科研项目结题会主持词

    尊敬的各位教授,各位专家,亲爱的同事们: 大家好!今天,我们欢聚一堂,举行科研项目结题会,共同庆祝我们完成的这段艰辛历程。 在过去的一年里,我们共同探索了一个课题,经过无数次的试验…

    科研百科 2025年5月25日
    0
  • 武汉理工大学光纤

    武汉理工大学光纤:科技引领未来通信 随着信息技术的飞速发展,通信行业也迎来了翻天覆地的变化。在这个变革的时代,光纤通信作为信息技术的重要组成部分,逐渐成为了通信行业的主流技术。而武…

    科研百科 2024年11月9日
    0
  • 上市企业办公室总经办推荐 80页《公司运营管理制度与流程汇编》

    本资料共计80页,以上是部分内容的展示 如果对您有所帮助 您可以评论 收藏 关注 后 私信小编回复:0528 即可获得这份完整版资料。

    科研百科 2022年10月11日
    214
  • 河北福成五丰食品股份有限公司 关于收到上海证券交易所有关年报事项的监管工作函回复公告

    证券代码:600965 证券简称:福成股份 公告编号:2022-025 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、准确性和…

    科研百科 2022年6月5日
    224
  • 接科研项目

    接科研项目 近年来,随着科技的飞速发展,科研项目逐渐成为了一个热门的领域。接科研项目是一个重要的项目类型,可以帮助科学家们快速地推进他们的研究进程,同时也可以为研究人员提供更多的研…

    科研百科 2025年2月11日
    0