分块 (计算机)

计算机编程中分块具有多种含义。

在内存管理方面

典型的现代软件系统从称为堆的结构中动态分配内存。调用堆管理例程用来分配和释放内存。堆管理引入了一些计算时间,可能是一个性能问题。分块是指通过使用特殊的情况知识来汇总相关的内存分配请求从而提高性能的策略。例如,如果知道某种对象通常需要8个为一组使用,那么与其单独分配和释放每个对象,对堆管理器进行16次调用,不如分配和释放由8个对象组成的数组,从而将调用次数减少到2次。

在HTTP消息传输方面

分块HTTP1.1协议[1]的一个特殊功能。这里,其含义与内存管理中的含义相反。它指的是一种能力,允许将不方便的大消息分解成更便于使用的小“块”。

在重复数据删除、数据同步和远程数据压缩等方面

重复数据删除、数据同步和远端数据压缩中,分块是通过分块算法将文件分割成更小块的过程。它可以帮助消除存储上重复数据的重复拷贝,或者通过只选择被更改的块来减少通过网络上发送的数据量。诸如旋转哈希及其变种的基于内容分块算法(英语:Content-Defined Chunking,CDC)在过去15年中一直是最流行的数据重复删除算法[2]

参见

参考文献

  1. ^ HTTP/1.1: Protocol Parameters. [2019-12-10]. (原始内容存档于2020-12-12) (英语). 
  2. ^ FastCDC: a Fast and Efficient Content-Defined Chunking Approach for Data Deduplication (PDF). USENIX ATC ’16. 2016 [2019-12-10]. (原始内容存档 (PDF)于2020-11-12) (英语).