预防优于治疗 — 来自张汉东老师对于内存泄漏问题的观点
Rust 与 内存泄漏
学习 Rust 语言的一个很大的收获就是:「预防大于治疗」。
内存泄漏并不是 Rust 语言要解决的问题,但是 Rust 语言也不大容易发生内存泄漏。
写 Rust 代码如何避免内存泄漏呢?两点:
- 做好预防
- 及早发现
如何做好预防:
- 你可以增加一些内存泄露基准测试代码。在高并发访问下前后内存变化是否超过了一个额定值。
- 测试服上降低 OOM 限额。让代码尽早出问题。
- 在写代码的时候对于有可能出现内存泄露的情况进行样板化检查,比如循环引用、forgot调用、FFi边界之类。
及早发现:
- 上线的项目里加上性能监控,及早发现泄露问题。
一旦如果发生了泄露,那就只能借助日常性能检测工具发现问题了,但是在这之前你可以先检查下刚提到的样板化检查区域的代码,再用一些性能测试工具逐步收集信息,缩小范围,逐渐排查。
- 检测工具推荐:Valgrind、gperftools、ltrace、rr、gdb
- 回放线上流量,对流量做二分找到有内存泄漏的部分请求,加压重放加速问题显露,然后二分注释代码找最小的泄露区域人肉排查。(此条经验 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