在linux环境下配置项目运行环境时,部署的人员都会分配一下内存,以保证程序正常的运行。其实在开发的时候(window系统),就已经涉及到内存分配了,只是这些参数有默认值,因此一直没有去重视它。 
以Myeclipse为例,在Preferences->Java->Installed JREs下面,就有设置jvm内存分配。


这里我们就可以配置内存,一般我们见到的都是

-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m

linux中一般为:
-vmargs -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m

但是这一串究竟是什么意思,这里就给大家讲解一下。 
按照官方的说法:Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的,在JVM中堆之外的内存称为非堆内存(Non-heap memory)。

简单的说就是:堆是java代码可及的内存,开发人员写的东西都是堆分配的内存(底层实现除外)。而非堆内存则是JVM自己用的,比如JVM内部处理或优化,垃圾处理,常数池等。

堆的内存分配用-Xms和-Xmx

-Xms分配堆最小内存,默认为物理内存的1/64;-Xmx分配最大内存,默认为物理内存的1/4。

非堆内存分配用-XX:PermSize和-XX:MaxPermSize

-XX:PermSize分配非堆最小内存,默认为物理内存的1/64;-XX:MaxPermSize分配最大内存,默认为物理内存的1/4。

因此,合理的内存分配是程序正常稳定的运行的基础。不然内存溢出可就麻烦了。

jar包 运行内存分配情况相关推荐

  1. 如何查看Maven项目中的jar包依赖树情况?

    对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...

  2. Spring Boot引用本地jar包

    最近在做一个SpringBoot的小工程,这类工程通常都是使用maven管理依赖并打包,但最近这个工程因为某些原因(比如企业自己的jar包,或者修改后的开源项目jar包)需要引用本地jar包.这种情况 ...

  3. 在IDEA中解决jar包冲突的神操作-必看,秒杀市面方法

    在开发过程中,经常会遇到导入jar包后jar包冲突的情况,大家也都知道,解决jar包冲突通常都比较麻烦,要找到多余的依赖,把低版本的依赖去掉.而大家通常能搜到IDEA解决jar包冲突的方法,应该是这样 ...

  4. linux jar 运行 停止,[转] Linux中启动和停止jar包的运行

    脚本一: startTest.sh内容如下: #!/bin/sh java -jar Test.jar &       #注意:必须有&让其后台执行,否则没有pid生成 echo $! ...

  5. 在IDEA中解决jar包冲突的神操作-必看

    在开发过程中,经常会遇到导入jar包后jar包冲突的情况,大家也都知道,解决jar包冲突通常都比较麻烦,要找到多余的依赖,把低版本的依赖去掉.而大家通常能搜到IDEA解决jar包冲突的方法,应该是这样 ...

  6. 命令行生成、运行及调用jar包

    文章目录 一.制作只含有字节码文件的jar包 二.制作含有jar文件的jar包 三.制作含有资源文件的jar包 四.java命令行执行带依赖jar包的main函数 本文参考文章如下: 命令行生成并直接 ...

  7. 一个pom文件中出现了两个相同的依赖_在IDEA里解决maven的pom引用jar包冲突

    前言 有的时候,我们要给系统添加一个新功能,可能需要引入新的pom依赖,一切都搞定好后,运行程序却发现报NoClassDeFoundError错误,或者其它莫名奇妙的问题. 这个时候很有可能就是新引入 ...

  8. nexus 增加代理仓库 无法搜到snapshot的jar包 解决方法

    如题, nexus 私服 增加了另一个 私服,  但是无法搜到 版本中带有 snapshot字样的 jar包. 环境情况: 1.老私服: 首先版本中带有 snapshot字样的 jar包,是发布在 老 ...

  9. idea打jar包(包括依赖包)

    今天试着将一个maven项目打成jar包供其他项目使用,虽然看起开,对于第一次弄得我还是费了不少功夫,在此记录一下,方便日后查看也给和我一样在此处刨坑的小伙伴们指点迷津. 先讲一下此次打jar包的基本 ...

  10. 一步一步学java(7):jar包使用方法及常用jar包分类汇总(持续更新)

    java最大的特点和优势就是纯面向对象.开源,除了JDK.JRE自带的基础类库之外,还有非常多的大牛们开发了各种应用的类库(jar包),本篇主要介绍一下这些类库的使用方法,并把常用jar包分类汇总,以 ...

最新文章

  1. c#自定义控件窗体Click无法点击Lable的处理解决方案
  2. fckeditor 数据库 取值 显示
  3. linux cut 用法
  4. 使用XML方式进行AOP编程(代码)
  5. java集合系列_Java集合系列01-Java集合概述
  6. java倒计时跳出窗口_java倒计时弹出框
  7. mysql查询20-30的数据_20. mysql查询表的数据大小
  8. python os.access_os.access(path, mode)
  9. java中的关键字有哪些_java关键字复习
  10. html几个数据包,报文和数据包的区别
  11. python自动化办公excel-Python自动化办公系列之Python操作Excel
  12. 测试一下各浏览器对CSS3的支持
  13. 简明python教程实例
  14. 创建mysql视图索引_mysql 创建索引和视图
  15. 超越“虚拟的美丽”——云计算实践再分析
  16. Android 启动后台运行程序(Service)
  17. 【springBoot无法启动,启动类灰色】
  18. 毕业生提高求职成功率的3个方法
  19. C++中如何控制语句只执行一次_【Python基础(七)】逻辑控制
  20. 被迫浏览“H”网,发现了赚钱套路

热门文章

  1. dell屏幕亮度调节不了_戴尔笔记本无法调节亮度怎么办?如何找回调节亮度?
  2. Caused by: redis.clients.jedis.exceptions.JedisConnectionException: JedisPubSub was not subscribed t
  3. 2019年系统架构设计师考试总结
  4. 【2021-09-22 修订】【梳理】计算机网络:自顶向下方法 第二章 应用层(docx)
  5. 编写高效的JAvascript——Nicholas C. Zakas(读书笔记)
  6. coreldraw x5安装视频教程_免费史上最全的EndNote视频教程
  7. strcpy函数在c语言的作用是什么,strcpy函数的作用是什么呀?
  8. arcgis制作瓦片地图_利用ArcGISDesktop制作【地图瓦片包(TPK切片包)】的技术流程及优化...
  9. 计算机管理器鼠标不见了怎么办,电脑的鼠标光标消失了
  10. Qt实现读取BIN文件