95-290-050-源码-内存管理-堆外内存与堆内内存概述

在这里插入图片描述

2.概述

​ Flink的内存管理器管理着用于排序、散列和缓存所需的内存。内存以相等大小的(Segments)表示,称为内存页。操作器通过请求多个内存页来分配内存。在Flink中,内存又分为堆内存和非堆内存。至于是去申请什么类型的内存,这里有相关的参数去配置。

​ 内存管理器可以预先分配所有内存,或者按需分配内存。在前者中,内存将从开始就被占用和保留,这意味着在请求内存时不能出现OutOfMemoryError,释放的内存也将返回到内存管理器的池中。按需分配是指内存管理器只跟踪当前分配了多少内存段(仅记账)。释放内存页不会将其添加到池中,而是让垃圾收集器重新声明它。

3.MemoryPool的定义

Flink的内存分为堆内存和非堆内存。他们共同继承一个MemoryPool的抽象类。所以首先让我们先看下MemoryPool的定义。

/**
* 内存池抽象类
*/
abstract static class MemoryPool {
   

猜你喜欢

转载自blog.csdn.net/qq_21383435/article/details/106090157