Hasty Briefsbeta

双语

Rust Service Isn't Leaking – It Could Be the Allocator

7 days ago
  • #memory management
  • #Rust performance
  • #allocator comparison
  • 尽管 Rust 代码中没有内存泄漏,但由于分配器行为,处理事件后内存使用量仍然很高。
  • Glibc 的 ptmalloc 分配器将已释放的内存保留在竞技场中,导致高驻留集大小,因为已释放的块可能不会返回给操作系统,尤其是在使用线程竞技场和内存碎片化的情况下。
  • 切换到 jemalloc 解决了这个问题,因为它使用按大小类别隔离的 slab,允许通过后台线程和衰减计时器独立回收内存。
  • Mimalloc 对于突发性工作负载效果不佳,因为跨线程释放延迟了回收,且在无持续分配活动时驻留集大小仍然很高。