编程语言的能源效率研究
Posted: Thu Jan 30, 2025 8:15 am
因此,如果提高能源效率和性能意味着在运行期间永久消耗更少的能源,那么创建软件是否需要时间 J 或稍长的时间 R 根本不重要。由于完成的 Rust 应用程序也很可能以较少的运行时问题(例如,因为避免了内存错误)和更愉快的用户体验(通过更短的响应时间)来取悦人们,因此更清楚的是,我们都从中受益。
如果开发时间不被认为是产品第一个版本交付之前的时间,而是直到它在“现场”可验证稳定且可靠运行之前的时间,那么可以预期 Rust 中的完成时间比对于此类编程语言的项目,它们仅在应用时发展其成熟度。
前段时间,葡萄牙的一组研究人员更详细地研究了各种编程语言的执行速度、内存消耗、启动时间、编译时间和其他细节,并于 2021 年 5 月发表了一篇关于该主题的广受好评的文章。可以在此处查看这项工作的较旧的初步版本。
为所有涉及的语言选择了相同算法的最有效的实现,并且这些 列表构建mlm 实现在相同的硬件和相同的操作系统环境中执行。
2021 年 5 月底,Christian Meesters再次处理了这些结果,并在下图中清晰地呈现了结果:
该图是在非常慷慨的CC-BY SA 4.0 许可证下发布的。
这里可以看到的是实现测试集的能耗,相对于最节能的语言(C 语言)进行了标准化,其值为“1”。对于相同的任务,其他语言需要 Y 倍的能量。
如果详细查看结果,原始研究表明,Rust 需要比 C 多大约 3.5% 的能量来完成这些计算任务,并且两者的速度几乎相同。 Java 应用程序需要的精力和时间大约是 Rust 应用程序的两倍。特别是,基于VM的语言,尤其是脚本语言的解决方案通常需要基于编译器的语言的许多倍的精力和时间。
根据实际测试的算法,研究中的值略有不同,但它们之间的关系基本相同。
如果您查看执行期间所需的 RAM 量而不是性能(类似于能耗),结果类似:
Rust 比内存效率最高的编程语言(在本次比较中为 Pascal)需要多 54% 的 RAM(系数 1.54)。 Pascal 程序的内存需求比 Go 和 C 程序的内存需求略低。以 Rust 的内存需求为例,JavaScript 需要 4.56 倍,Java 6.01 倍,在内存消耗方面垫底,Jruby内存的 19 .84 倍。
值得注意的是,并非每种语言都同样适合相同的目的。脚本语言非常适合需要“即时”实现的后端计算机上的数据流处理,而编译的应用程序更适合最大数据吞吐量或可靠且快速的响应时间很重要的用例。
如果开发时间不被认为是产品第一个版本交付之前的时间,而是直到它在“现场”可验证稳定且可靠运行之前的时间,那么可以预期 Rust 中的完成时间比对于此类编程语言的项目,它们仅在应用时发展其成熟度。
前段时间,葡萄牙的一组研究人员更详细地研究了各种编程语言的执行速度、内存消耗、启动时间、编译时间和其他细节,并于 2021 年 5 月发表了一篇关于该主题的广受好评的文章。可以在此处查看这项工作的较旧的初步版本。
为所有涉及的语言选择了相同算法的最有效的实现,并且这些 列表构建mlm 实现在相同的硬件和相同的操作系统环境中执行。
2021 年 5 月底,Christian Meesters再次处理了这些结果,并在下图中清晰地呈现了结果:
该图是在非常慷慨的CC-BY SA 4.0 许可证下发布的。
这里可以看到的是实现测试集的能耗,相对于最节能的语言(C 语言)进行了标准化,其值为“1”。对于相同的任务,其他语言需要 Y 倍的能量。
如果详细查看结果,原始研究表明,Rust 需要比 C 多大约 3.5% 的能量来完成这些计算任务,并且两者的速度几乎相同。 Java 应用程序需要的精力和时间大约是 Rust 应用程序的两倍。特别是,基于VM的语言,尤其是脚本语言的解决方案通常需要基于编译器的语言的许多倍的精力和时间。
根据实际测试的算法,研究中的值略有不同,但它们之间的关系基本相同。
如果您查看执行期间所需的 RAM 量而不是性能(类似于能耗),结果类似:
Rust 比内存效率最高的编程语言(在本次比较中为 Pascal)需要多 54% 的 RAM(系数 1.54)。 Pascal 程序的内存需求比 Go 和 C 程序的内存需求略低。以 Rust 的内存需求为例,JavaScript 需要 4.56 倍,Java 6.01 倍,在内存消耗方面垫底,Jruby内存的 19 .84 倍。
值得注意的是,并非每种语言都同样适合相同的目的。脚本语言非常适合需要“即时”实现的后端计算机上的数据流处理,而编译的应用程序更适合最大数据吞吐量或可靠且快速的响应时间很重要的用例。