首页 > 解决方案 > 使用 MALLOC_MMAP_THRESHOLD_ 从 mmap 分配大型结构

问题描述

我有一个很大的结构(~200Mb),我使用 serde_json 从 Java 的大型 JSON 文件反序列化,当有新数据可用时,这种反序列化再次发生。该结构具有Vecs、a HashMapof strings 和 structs of strings 等。

在查看mallopt(3) 的手册页时,我发现MALLOC_MMAP_THRESHOLD_可以设置环境变量来控制必须为 malloc 请求多少分配才能使用 mmap 进行分配。我想从 mmap 分配我的结构,因为堆在重新加载期间导致内存碎片。我希望将旧的释放内存(被新的反序列化结构替换的内存)立即返回到系统(而不是由 malloc 竞技场之一保留)。

有没有办法做到这一点?我应该使用其他数据格式吗?

标签: rustmalloc

解决方案


推荐阅读