Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用一个价值很大的程序。每个值由 id 数字组成(以逗号分隔的整数):
值1:1,207,688,4401,5432,40000,872111100
值2:65,876,992,10002,9843221
我将值存储为文本,但它为每个字符获取 1 个字节。如果 id 中的位数变大,它会占用很多空间。我将值存储为文本类型吗?哪种格式最适合存储它?谢谢。
如果内存效率是一个真正的问题,并且您知道这些 ID 的长度永远不会超过Long.MAX_VALUE,我建议使用LongWritable.
Long.MAX_VALUE
LongWritable
相反,如果您知道它们往往足够长,以至于每个字符的字节值比以数字形式存储的内存效率更高,那么Text就非常合适。
Text
在大多数情况下,考虑到它无论如何都会被写到文件中,不值得担心太多 - 通常只有long在使用它执行某种形式的计算时才值得转换为,否则你也可以坚持Text避免在初始解析之上的转换开销。
long