【Rust日报】2020-08-04 — 内存泄漏:预防优于治疗

2020-08-11 10:34:01 浏览数 (1)

预防优于治疗 — 来自张汉东老师对于内存泄漏问题的观点

Rust 与 内存泄漏

学习 Rust 语言的一个很大的收获就是:「预防大于治疗」。

内存泄漏并不是 Rust 语言要解决的问题,但是 Rust 语言也不大容易发生内存泄漏。

写 Rust 代码如何避免内存泄漏呢?两点:

  1. 做好预防
  2. 及早发现

如何做好预防:

  1. 你可以增加一些内存泄露基准测试代码。在高并发访问下前后内存变化是否超过了一个额定值。
  2. 测试服上降低 OOM 限额。让代码尽早出问题。
  3. 在写代码的时候对于有可能出现内存泄露的情况进行样板化检查,比如循环引用、forgot调用、FFi边界之类。

及早发现:

  1. 上线的项目里加上性能监控,及早发现泄露问题。

一旦如果发生了泄露,那就只能借助日常性能检测工具发现问题了,但是在这之前你可以先检查下刚提到的样板化检查区域的代码,再用一些性能测试工具逐步收集信息,缩小范围,逐渐排查。

  1. 检测工具推荐:Valgrind、gperftools、ltrace、rr、gdb
  2. 回放线上流量,对流量做二分找到有内存泄漏的部分请求,加压重放加速问题显露,然后二分注释代码找最小的泄露区域人肉排查。(此条经验 via DCjanus)

Go VS Rust — 一个cli 写两遍

作者写了一个 CLI, 用 go 和 rust 各自写了一遍, 还附带总结.:https://cuchi.me/posts/go-vs-rust

Rust 唠嗑第六期:Rust FFI

《Rust唠嗑室》第6期 - Rust FFI 经验介绍

主讲人:Mono Wang 内容:主要介绍 Rust FFI 进阶使用技巧和实现要点。以及踩过的坑。以及还没解决的内存泄漏。时间: 2020/8/4 20:30-21:30 形式: 在线 腾讯会议App

大家错过了不要紧,敬请关注Mike Tang 老师在 B站 的唠嗑视频更新哈(视频已更新:B站搜索 Rust唠嗑室 找到第 6 期视频)

【小编私货】Rust异步书翻译更新

小编周末的时候重梳理了一下去年对异步书的翻译,病重新更新翻译到最新的版本,请各位读者大人多多指教,欢迎 issue 和 PR 翻译文档链接: https://huangjj27.github.io/async-book/index.html 仓库链接:https://github.com/huangjj27/async-book

0 人点赞