#hash-map #linux #file #data-structures

nightly file_hashmap

基于文件的 libcollections HashMap 版本

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年1月28日

#58 in #hashmap

MIT/Apache

175KB
3.5K SLoC

基于文件的 HashMap

此代码是 HashMaplibcollections 的略微修改版本。原始版本请见 libcolletions.

唯一的不同之处在于内存的分配方式。具体来说,这个版本的分配器使用基于文件的内存(实际上是交换空间)。

这可能是件坏事,但在某些情况下可能很有用,比如你计划分配巨大的 HashMap,但又不想依赖于系统交换空间。这可能有几个原因

  • 你没有足够的交换空间来运行程序,因此使用这个库作为临时增加容量的方法。

  • 你完全没有交换空间,因为你已经有足够的内存来支持正常使用。

  • 你不想最小化代码运行时的性能影响,但又不希望像 HashMap 那样强制其他进程交换和丢弃它们的缓存。我还没有测试这在实际中的效果如何。

目前这仅在 Linux 3.11 及更高版本上工作,因为它使用了 O_TMPFILE 标志。

依赖项

~2MB
~43K SLoC