我理解,与VIntWritable相比,IntWritable可以显着减少存储整数所需的大小。
我的问题是:使用VIntWritable而不是IntWritable的成本是多少?是(仅)压缩所需的时间吗?换句话说,我何时应该使用IntWritable而不是VIntWritable?
答案 0 :(得分:3)
如何在固定长度和可变长度之间进行选择 编码?
当值的分布是固定长度编码时 在整个价值空间中相当统一,例如(精心设计) 哈希函数。大多数数字变量往往具有不均匀性 分布,平均而言,可变长度编码将保存 空间。可变长度编码的另一个优点是你可以 从VIntWritable切换到VLongWritable,因为它们的编码是 实际上是一样的。因此,通过选择可变长度表示, 你有成长空间而不需要长达8个字节 从一开始就表示。
我刚从definitive guide book第98页
中选择了这个