当前位置: 首页> 游戏> 单机 > 提升学历大概要多少钱_辽宁建设工程信息网评标专家入库_电脑零基础培训班_网站测试的内容有哪些

提升学历大概要多少钱_辽宁建设工程信息网评标专家入库_电脑零基础培训班_网站测试的内容有哪些

时间:2025/8/15 3:04:23来源:https://blog.csdn.net/weixin_41947378/article/details/147095795 浏览次数:0次
提升学历大概要多少钱_辽宁建设工程信息网评标专家入库_电脑零基础培训班_网站测试的内容有哪些

堆内存、本地内存、堆外内存、直接内存的区别

  1. 堆内存(Heap memory):堆内存是 JVM 进程内的内存,用于存储 Java 对象,并由 JVM 的垃圾回收器管理。
  2. 本地内存/堆外内存(Native memory/Off-heap):这是在进程地址空间中分配的内存,但不在堆内存范围内,因此不会被 Java 垃圾回收器释放。
  3. 直接内存(Direct memory):直接内存与本地内存类似,但它还意味着底层硬件中的缓冲区正在被共享。例如,网络适配器或图形显示中的缓冲区。这里的目的是减少相同字节在内存中被复制的次数。

区分堆内存、非堆内存的核心区别就是是否受jvm垃圾收集器管理

堆外内存和本地内存的联系和区别:
联系:

  • 堆外内存实际上是本地内存的一部分,主要用于存储那些不需要被垃圾回收的对象或数据。
  • 它们都位于 JVM 堆之外,不受垃圾回收器管理。

区别:

  • 堆外内存更侧重于应用程序显式分配和使用的内存区域,通常是为了提高性能或减少垃圾回收的影响。
  • 本地内存是一个更广泛的概念,涵盖了 JVM 进程中所有非堆内存区域,包括 JVM 自身使用的内存和其他本地资源。

你可以认为堆外内存是本地内存的一个子集,专门用于应用程序显式管理和使用的内存区域。
在实际开发中,当你提到“堆外内存”时,通常指的是你通过编程手段(如 Direct ByteBuffer 或其他方式)显式分配的内存;而“本地内存”则可能包含更多 JVM 自身使用的内存区域。
因此,在大多数情况下,堆外内存和本地内存可以视为相同的概念,但在具体场景下,它们的侧重点有所不同。

在这里插入图片描述

  • 代码缓存Code Cache,既不在堆中,也不在元空间中,是一个单独的堆外区域。
  • 如果启用了 类指针压缩 UseCompressedClassPointers,那么类及其元数据会使用两块独立的本地内存区域。在 UseCompressedClassPointers 模式下,64 位的类指针会被表示为 32 位值,这些压缩后的类指针存储在压缩类空间 (Compressed Class Space) 中。默认情况下,这个压缩类空间大小为 1GB,并且可以通过参数 CompressedClassSpaceSize 进行配置。

    MaxMetaspaceSize 设置了这两块区域(压缩类空间的已提交空间和类元数据空间)的总提交大小的上限。

    以下是启用 UseCompressedClassPointers 后 GC 日志中的示例输出。Metaspace 报告的已提交和已保留空间中,包含了压缩类空间的已提交和已保留空间。
    在这里插入图片描述

Refer:
堆内存、本地内存、堆外内存、直接内存的区别

关键字:提升学历大概要多少钱_辽宁建设工程信息网评标专家入库_电脑零基础培训班_网站测试的内容有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: