什么是 Rust 向操作系统取消提交和 return 内存的策略?

What is Rust strategy to uncommit and return memory to the operating system?

在堆上分配内存是一项昂贵的操作,因此一些编程语言会避免将其返还给操作系统,即使分配的内存不再被使用。

但对于许多场景,例如云上的微服务 运行,您希望内存使用率较低,否则费用可能会很高。 所以在这些情况下,在内存不被使用后释放它是非常重要的。

Rust 向操作系统取消提交和 return 内存的默认策略是什么?
如何改变?

Rust 默认使用 system allocator.

This is based on malloc on Unix platforms and HeapAlloc on Windows, plus related functions.

是否调用 free() 实际上使内存可供其他进程使用取决于 libc 实现和您的操作系统,并且该问题大多与 Rust 无关(请参阅下面的链接)。在任何情况下,释放的内存都应该可用于将来的分配,因此 long-running 进程不会泄漏内存。

我的总体经验是,Rust 服务器的资源消耗非常低。

另请参阅: