Java虚拟机--非堆内存的参数配置(五)

  

  • 方法区配置
    • JDK1.6 , JDK1.7配置永久区大小:
      • -XX:PermSize:初始的永久区大小;
      • -XX:MaxPermSize:最大永久区;
    • JDK1.8使用元数据区替代永久区:
      • 默认情况下,元数据区只受系统可用内存的限制;
      • -XX:MaxMetaspaceSize:用来指定永久区的最大可用值;
  • 栈配置
    • 栈是每个线程私有的内存空间;
    • Java虚拟机中可以使用-Xss参数指定线程的栈大小;
  • 直接内存配置
    • 能力:直接内存跳过了Java堆,使Java程序可以直接访问原生堆空间;
      • 能力特点:它从某种程度上加快了内存的访问速度,但不能武断的认为直接内存一定可以提高内存访问速度;
    • 属性:
      • -XX:MaxDirectMemorySize:设置直接内存的最大可用空间。如果不配置,默认为最大堆空间,即-Xmx;
        • 属性特点:当直接内存使用量达到该属性的最大值,即触发垃圾回收,如果垃圾回收不能释放足够空间,直接内存会引发系统的内存溢出异常;
    • 优势:适合申请次数较少,访问较频繁的场景;
    • 示例1:直接内存与堆内存的读写速度测试,直接内存完胜

public class AccessDirectBuffer {

//直接内存读写测试

public void directAccess(){

long starttime = System.currentTimeMillis();

ByteBuffer b = ByteBuffer.allocateDirect(500);

for (

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java虚拟机的内存配置参数有:Xms,Xmx,MaxPermSize和MetaspaceSize。Xms表示Java虚拟机启动时分配的内存容量;Xmx表示Java虚拟机最大可分配的内存容量;MaxPermSize表示持久代(永久代)的最大可分配的内存容量;MetaspaceSize表示元空间的最大可分配的内存容量。 ### 回答2: Java 虚拟机的内存配置参数有以下几个: 1. -Xms:代表初始堆内存大小,用于指定 Java 堆内存的初始大小。例如,-Xms512m 表示堆内存初始大小为 512MB。 2. -Xmx:代表最大堆内存大小,用于指定 Java 堆内存的最大可用大小。例如,-Xmx1024m 表示堆内存最大可用大小为 1GB。 3. -Xss:代表线程堆栈大小,用于指定每个线程的堆栈大小。例如,-Xss256k 表示每个线程的堆栈大小为 256KB。 4. -Xmn:代表新生代堆内存大小,用于指定 Java 堆内存中新生代的大小。例如,-Xmn256m 表示新生代堆内存大小为 256MB。 5. -XX:MetaspaceSize:代表元空间大小,用于指定元空间(原永久代)的初始大小。例如,-XX:MetaspaceSize=128m 表示元空间初始大小为 128MB。 通过这些内存配置参数,我们可以根据应用程序的需求合理地分配内存空间。-Xms 和 -Xmx 可以控制堆内存的初始大小和最大可用大小,避免内存空间过大或过小导致性能问题。-Xss 可以控制线程的堆栈大小,避免线程数量过多导致内存溢出。-Xmn 可以控制新生代堆内存大小,优化垃圾回收的效率。-XX:MetaspaceSize 可以控制元空间的初始大小,避免元数据占用过多内存。 合理配置这些内存参数可以提高 Java 程序的性能和稳定性,确保应用程序可以正常运行并充分利用系统资源。 ### 回答3: Java虚拟机的内存配置参数有以下几个: 1. -Xms: 该参数用于指定Java虚拟机的初始堆大小。默认值通常为物理内存的1/64。例如,-Xms512m表示初始堆大小为512MB。 2. -Xmx: 该参数用于指定Java虚拟机的最大堆大小。默认值通常为物理内存的1/4。例如,-Xmx2g表示最大堆大小为2GB。 3. -Xmn: 该参数用于指定Java虚拟机的年轻代大小。年轻代是堆的一部分,用于存储新创建的对象。默认值通常为整个堆大小的1/3或1/4。例如,-Xmn256m表示年轻代大小为256MB。 4. -XX:MaxPermSize: 该参数用于指定Java虚拟机的永久代大小。永久代用于存储类信息、常量池等。在Java 8及更高版本中,永久代被元空间(Metaspace)取代。例如,-XX:MaxPermSize128m表示永久代大小为128MB。 5. -Xss: 该参数用于指定Java虚拟机的每个线程的默认栈大小。默认值通常为1MB。栈用于存储线程的方法调用和局部变量等。例如,-Xss256k表示栈大小为256KB。 以上是Java虚拟机的主要内存配置参数,通过调整这些参数,可以根据应用程序的需求来优化内存的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值