快速和内存高效的地图替代方案

时间:2017-06-29 17:25:50

标签: dictionary go memory-management

我正在编写一个程序来识别和统计大型表文件中的唯一条目(按GB压缩的顺序)。我当前的方法是在记录大map[string]uint中的每个条目名称,并在我找到重复条目时折扣我的计数。这工作正常但在运行我的程序时分配了8GB的RAM,我希望减少这个占用空间。

我已经研究了Key-Value数据库来存储我的数据,因为它们允许分页到文件中并减少内存占用。不幸的是,运行一些基准测试我发现大多数数据库的占用空间更大,性能更慢。你有什么建议吗?

BenchmarkMapRegister-4            500000              4678 ns/op             134 B/op          2 allocs/op
BenchmarkInsertBolt-4                100          23396720 ns/op           16524 B/op         50 allocs/op
BenchmarkInsertKV-4                10000            411216 ns/op
BenchmarkInsertGKVlite-4           30000             56059 ns/op             184 B/op          5 allocs/op
BenchmarkInsertBunt-4             100000             12795 ns/op             515 B/op          8 allocs/op
BenchmarkInsertBigCache-4         300000              4132 ns/op
BenchmarkInsertLevelDB-4           50000             28036 ns/op             497 B/op         10 allocs/op
PASS

P.S。我不需要跟踪我的密钥,只能识别以前是否记录过。

0 个答案:

没有答案