美文网首页
Rust 内存管理

Rust 内存管理

作者: 西门早柿 | 来源:发表于2021-02-13 23:00 被阅读0次

主要的内存管理方法

主要针对堆内存的管理。

  • 手动管理(c/c++),容易触发内存安全问题,以及内存泄露。
  • 自动管理(GC,java/golang),运行时对性能有影响,并不能完全避免内存泄露。
  • 运行时使用 Drop trait 来回收资源,利用所有权规则在编译期间避免内存安全问题。

内存安全:

  • 悬垂指针,指向内存已经被释放。
  • 空指针。Option<T> 避免了空指针。
  • 未定义内存。编译器确保所有分配内存的变量都完成了初始化。
  • 缓冲区溢出。
  • 非法释放未分配的指针或者已经被释放的指针。

通用概念

  • 栈,栈帧,ESP,EBP。
  • 堆。堆分配算法,空闲链表和位图标记。
    • jemalloc,tcache -> arena -> system。
    • golang 中的内存管理?
  • 内存对齐。

Rust 中的内存管理

  • 检测未初始化变量。
  • 栈内存的自动释放。
  • 堆内存的自动释放。
    • 智能指针和 RAII
      • Deref 和 Drop trait。
  • 内存泄露
    • 线程崩溃,Drop 没有被调用。
    • 循环引用。
    • 主动调用 forget,主要与 FFI 相关。

相关文章

  • rust 内存管理

    1、&变量 => 不可变取地址 1. 传递内存地址 2. 传递数组 3. 无法通过地址修改内存数据 2、&mut ...

  • rust语义:move、copy

    rust没有gc,但是保证了内存管理,是怎样做到的呢,主要是靠move、copy的语义做到的。 move rust...

  • Rust手动管理内存

    为了确保安全性,Rust在零抽象的基础上,限制了很多易导致潜在bug的操作,比如直接指针操作,以及长生命周期等等,...

  • Rust 语言

    Rust 安全高效的语言 安全: 开发人员无需手动管理内存。 高效: 开发出的软件运行效率高。rust 官网 ht...

  • Rust 语言中的内存管理、borrow、&,ref,mut

    刚学习Rust, 觉得Rust在内存管理上很独特, 但是它的概念和语法让人很容混淆; 这里做一下归纳: Part ...

  • 2022-07-23

    Rust Box堆分配Box 背后是调用 jemalloc 来做内存管理,所以堆上的空间无需我们的手动管理。与此类...

  • Rust 所有权

    什么是所有权?(Ownership) Rust 不使用 GC(垃圾回收器)管理内存,而是使用所有权机制进行管理。和...

  • Rust核心设计之Ownership

    Ownership in Rust 背景 目前主流编程语言管理内存的方式不外乎两种--gc或者手动. owner...

  • Rust学习笔记之Ownership

    Rust使用ownership系统来管理内存,编译器会检查这些ownership系统的规则,一旦违反这些规则,则编...

  • Rust 所有权

    认识所有权 所有权是 rust独特的功能,它让 rust无需垃圾回收即可保证内存安全。 什么是所有权 Rust核心...

网友评论

      本文标题:Rust 内存管理

      本文链接:https://www.haomeiwen.com/subject/pabuxltx.html