Memory DolphinDB内存管理

Memory DolphinDB内存管理,memory,dolphindb,Memory,Dolphindb,我的桌面有32G内存。我需要使用DolphinDB中的500GB分区表。每个分区大约200MB。如果我在做一个操作,比如,对整个表中的一列求和,我想了解DolphinDB是如何管理内存的。在我看来,对于分区表和未分区表,DolphinDB的内存管理方式有所不同。正如您所说,DolphinDB在处理分区表时不必同时将所有数据加载到内存中。以你为例。大约有2500个分区需要处理,假设您的桌面有8个超线程。DolphinDB将向内存加载多达8个分区,并同时处理它们。也就是说,峰值内存使用量不会超过20

我的桌面有32G内存。我需要使用DolphinDB中的500GB分区表。每个分区大约200MB。如果我在做一个操作,比如,对整个表中的一列求和,我想了解DolphinDB是如何管理内存的。在我看来,对于分区表和未分区表,DolphinDB的内存管理方式有所不同。

正如您所说,DolphinDB在处理分区表时不必同时将所有数据加载到内存中。以你为例。大约有2500个分区需要处理,假设您的桌面有8个超线程。DolphinDB将向内存加载多达8个分区,并同时处理它们。也就是说,峰值内存使用量不会超过200M*8加上一些工作内存。DolphinDB是一个列数据库,它只加载分区中必需的列。因此,在您的例子中,内存使用量远小于200M*8,因为计算只涉及一列

让我解释一下DolphinDB的缓存机制。在分区上执行计算后,DolphinDB不会立即从内存中释放分区的缓存。当内存使用达到设置的限制(由
maxmesize
设置)时,DolphinDB开始退出缓存