gpt4 book ai didi

java - 适合安卓手机百万行的高效快速KV存储?

转载 作者:行者123 更新时间:2023-11-30 09:29:14 25 4
gpt4 key购买 nike

是否有一个 KV 存储可以存储一百万个 KV 对,同时在 Android 手机中表现良好且不占用资源?

它应该能够快速做到这一点:

kvstore.deleteByPrefix("image_hash_"); #a million keys have this prefix
for(... #for a million values
kvstore.add("image_hash_"+i.toString(), "true"); #values are small
}

最佳答案

您的 key 表明您的值很大(总共很多 GB)这会给您带来比使用 map 更多的问题。

我建议您使用名称为文件名,值为文件内容的文件系统。您可以使用两级目录来拆分文件,以防止任何一个目录变得太大。


您可以使用以下内容。

new File("image_hash.properties").delete(); #a million keys have this prefix
PrintWriter pw = new PrintWriter(new File("image_hash.properties"))
for(int i=0;i<1000*1000;i++)
pw.println(i+"="+true);
pw.close();

如果你关心效率,只能有true或false,你可以写二进制。

FileChannel fc = new FileOutputStream("image_hash.flags");
ByteBuffer bb = ByteBuffer.wrap(1000*1000/8); // uses 125KB of memory.
Arrays.fill(bb.array(), (byte) -1);
fc.write(bb);
fc.close();

第一个示例每个值使用约 14 个字节,第二个示例每个值使用 1/8 个字节。

关于java - 适合安卓手机百万行的高效快速KV存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13681441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com