B堆（）是一个用来保证子树在一个内存页的二叉堆。这样可以在使用虚拟内存时减少访问很大堆时内存页的访问。传统的实现中，元素位置的映射（几乎）每一级都放在不同的内存页中。也有其他非常高效实用虚拟内存和缓存的堆的变种，例如、k堆、和。