PackedInts.Reader

Reader定义了如何解码的过程,其子类Mutable还附加定义了设置源数据的过程。
大的层面编解码存在紧凑型和对齐型两种方式,对齐型速度更快,但是存在空间浪费。
PackedInts.Writer

这里简单解释下iterations的含义。
一般内存中积累1024B大小的数据时,就一次flush到文件中存储下来,这样写入效率会更高。
一个iteration(迭代批次)表示xxx个字节正好能够表示xxx个源数据(每个源数据需要xxx个Bit位来表达)。
比如 7个byte正好能够表示8个源数据(每个源数据需要7Bit)。
具体可以看https://blog.youkuaiyun.com/gs_albb/article/details/118877893
代码也非常简单,可见 github
本文深入探讨了Lucene工具包中的PackedInts模块,重点介绍了PackedInts.Reader和PackedInts.Writer。Reader负责解码过程,而Mutable子类增加了设置源数据的功能。文章提到了编码的紧凑型和对齐型策略,对齐型虽速度快但可能造成空间浪费。此外,讲解了iterations的概念,即数据积累到一定大小时进行flush,以提高写入效率。一个iteration对应特定字节数能表示的源数据数量。例如,7个byte能表示8个7Bit数据。详细内容可参阅相关链接。
1354

被折叠的 条评论
为什么被折叠?



