rust - 使用 MALLOC_MMAP_THRESHOLD_ 从 mmap 分配大型结构
问题描述
我有一个很大的结构(~200Mb),我使用 serde_json 从 Java 的大型 JSON 文件反序列化,当有新数据可用时,这种反序列化再次发生。该结构具有Vec
s、a HashMap
of strings 和 structs of strings 等。
在查看mallopt(3) 的手册页时,我发现MALLOC_MMAP_THRESHOLD_
可以设置环境变量来控制必须为 malloc 请求多少分配才能使用 mmap 进行分配。我想从 mmap 分配我的结构,因为堆在重新加载期间导致内存碎片。我希望将旧的释放内存(被新的反序列化结构替换的内存)立即返回到系统(而不是由 malloc 竞技场之一保留)。
有没有办法做到这一点?我应该使用其他数据格式吗?
解决方案
推荐阅读
- javascript - 如何找到一个类的原型对象?
- r - 如何在 R 中绘制两个变量的函数的 3D 图
- html - 来自github的外部样式表没有链接
- arrays - numpy 形状与数组结构不一致
- sql-server - SqlException.Number 一个值,但有两个不同的文档。如何?
- haskell - 在 Haskell 中的每个元素中输出带有 Just 的 Maybe Int 列表
- php - 修复 SQLSTATE[HY000] [1045] 用户 'username'@'localhost' 的访问被拒绝(使用密码:YES)
- javascript - 使用 ReactJS Hooks 时将数据传递给动态点击处理程序
- binance - Binance API 期货 - {'code': -1117, 'msg': 'Invalid side.'}
- swift - SwiftUI 可编辑导航标题