开发者社区> 问答> 正文

怎么判定是否集合溢出呢?

怎么判定是否集合溢出呢?

展开
收起
游客fbdr25iajcjto 2021-12-06 21:45:47 727 0
1 条回答
写回答
取消 提交回答
  • maybeSpillCollection判定集合是否溢出主要由maybeSpill函数来决定,maybeSpill函数的处理步骤如下:

    1) 为当前线程尝试获取amountToRequest大小的内存(amountToRequest = 2 * currentMemory - myMemoryThreshold)。

    2) 如果获得的内存依然不足(myMemoryThreshold <= currentMemory),则调用spill,执行溢出操作。内存不足可能是申请到的内存为0或者已经申请得到的内存大小超过了myMemoryThreshold。

    3) 溢出后续处理,如elementsRead归零,已溢出内存字节数(memoryBytesSpilled)增加线程当前内存大小(currentMemory),释放当前线程占用的内存。

    2021-12-06 21:46:31
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载