我正在编写一个程序来识别和统计大型表文件中的唯一条目(按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。我不需要跟踪我的密钥,只能识别以前是否记录过。