当前位置: 首页 > 知识库问答 >
问题:

Java堆内存和巨大的页面

蓬弘
2023-03-14

在Java中分配堆外内存时(例如通过直接缓冲区或JNI本机代码),如果JVM使用-XX: UseLargePages,分配的内存是否会由巨大的页面支持?

共有1个答案

燕鸿波
2023-03-14

否,热点 JVM 使用普通的 libc malloc 调用为直接字节缓冲区分配内存。

但是,如果您将标准系统分配器替换为jemalloc-您将能够将malloc配置为在可用时使用大页面。

将大页面用于直接字节缓冲区的另一种选择是在 hugetlbfs 文件系统上创建一个文件,然后在 Java 中将其映射为映射字节缓冲区

 类似资料:
  • 我正在Windows 8.1 64位上开发java swing应用程序,带有4GB内存和JDK版本8u20 64位。 问题是当我使用带有监视器选项的Netbeans profiler启动应用程序时。 加载第一个Jframe时,应用程序Memory Heap约为18mb,JVM进程大小约为50mb(Image1)。 然后,当我启动另一个Jframe时,它包含一个带有webView的JFxPanel,

  • 上面链接中的代码正在工作,但可以传输到一定数量的数据。当我试图传输一个大小约为334 MB的.mkv格式的电影时,它给出了“内存不足,java堆大小”的错误。我是一个乞丐,我不知道如何解决这个问题,我试图在客户端程序中增加缓冲区大小,但问题仍然存在。请帮帮我.

  • 问题内容: 是局部变量,将其存储在堆或堆栈中的何处? 问题答案: 在堆上。每当您用来创建对象时,它都会在堆上分配。

  • 我试图在docker容器内JavaSpring Boot应用程序中寻找内存泄漏。 应用程序的堆大小如下所示: 本机内存差异如下所示: 本机内存跟踪: 总计:保留=8295301KB 1728KB,已提交=2794537KB 470172KB 获取堆转储后: 堆泄漏可疑报告非常小-45MB: 问题是:为什么Java堆提交=2245120KB-几乎2GB?它不符合Xmx512m,也不符合jmap的堆转

  • 本文向大家介绍java 中堆内存和栈内存理解,包括了java 中堆内存和栈内存理解的使用技巧和注意事项,需要的朋友参考一下  Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存

  • 我刚刚找到了一个JVM配置,其中配置的大页面的大小比为JVM分配的堆大小大得多。 我在下面添加的配置是针对Websphere Application Server的,但是对于使用大页面的任何其他Java应用程序来说,问题都是一样的。一般来说,IBM JRE使用-Xlp(IBM Knowledge Center-Tuning Linux systems)开关启用大页面,Oracle使用-XX: Us