java虚拟机

2016-02-19 11:41 5 1 收藏

下面这个java虚拟机教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - 编程语言 】

众所周知,jvm的内存是受限的,一为机器的体系架构,二为操作系统本身。
x86,x86-64,SPARC,.....的内存映射是不同,而各操作系统的内存管理机制也有区别。
以下是来自http://fengyouhua.javaeye.com/blog/58170 
1. Heap设定与垃圾回收Java Heap分为3个区,Young,Old和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不讨论该区。JVM的Heap分配可以使用-X参数设定,-Xms初始Heap大小 -Xmxjava heap最大值 -Xmnyoung generation的heap大小JVM有2个GC线程。第一个线程负责回收Heap的Young区。第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区。Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程被迫运行会降低JVM的性能。为什么一些程序频繁发生GC?有如下原因:l         程序内调用了System.gc()或Runtime.gc()。l         一些中间件软件调用自己的GC方法,此时需要设置参数禁止这些GC。l         Java的Heap太小,一般默认的Heap值都很小。l         频繁实例化对象,Release对象。此时尽量保存并重用对象,例如使用StringBuffer()和String()。         如果你发现每次GC后,Heap的剩余空间会是总空间的50%,这表示你的Heap处于健康状态。许多Server端的Java程序每次GC后最好能有65%的剩余空间。经验之谈:1.Server端JVM最好将-Xms和-Xmx设为相同值。为了优化GC,最好让-Xmn值约等于-Xmx的1/3[2]。2.一个GUI程序最好是每10到20秒间运行一次GC,每次在半秒之内完成[2]。注意:1.增加Heap的大小虽然会降低GC的频率,但也增加了每次GC的时间。并且GC运行时,所有的用户线程将暂停,也就是GC期间,Java应用程序不做任何工作。2.Heap大小并不决定进程的内存使用量。进程的内存使用量要大于-Xmx定义的值,因为Java为其他任务分配内存,例如每个线程的Stack等。2.Stack的设定每个线程都有他自己的Stack。-Xss每个线程的Stack大小Stack的大小限制着线程的数量。如果Stack过大就好导致内存溢漏。-Xss参数决定Stack大小,例如-Xss1024K。如果Stack太小,也会导致Stack溢漏。3.硬件环境硬件环境也影响GC的效率,例如机器的种类,内存,swap空间,和CPU的数量。如果你的程序需要频繁创建很多transient对象,会导致JVM频繁GC。这种情况你可以增加机器的内存,来减少Swap空间的使用[2]。4.4种GC第一种为单线程GC,也是默认的GC。,该GC适用于单CPU机器。第二种为Throughput GC,是多线程的GC,适用于多CPU,使用大量线程的程序。第二种GC与第一种GC相似,不同在于GC在收集Young区是多线程的,但在Old区和第一种一样,仍然采用单线程。-XX:+UseParallelGC参数启动该GC。第三种为Concurrent Low Pause GC,类似于第一种,适用于多CPU,并要求缩短因GC造成程序停滞的时间。这种GC可以在Old区的回收同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。第四种为Incremental Low Pause GC,适用于要求缩短因GC造成程序停滞的时间。这种GC可以在Young区回收的同时,回收一部分Old区对象。-Xincgc参数启动该GC。

来源:https://www.tulaoshi.com/n/20160219/1598248.html

延伸阅读
标签: 服务器
在VMware虚拟机中DiskGenius对虚拟机磁盘进行压缩 使用虚拟机的用户是否感觉到您的虚拟磁盘文件越来越大,都快把宝贵的磁盘空间(宿主机物理硬盘)占满了呢? 有人会想到,我直接启动虚拟机,然后把里面没用的数据删除了,不就行了吗?实际测试发现,这样删除后,存放在物理硬盘上的虚拟磁盘文件的大小并没有减小。虚拟机磁盘文件只会慢...
标签: 服务器
VMware虚拟机安装图解 更新了一下 VMware虚拟机. 也重新编写了安装批处理程序,和卸载程序. 测试后觉得还不错,遂发上来了. 简单说明一下: Xp下测试完全没问题. 沐珑还特意在虚拟机中安装了个Windows7测试一下. (由于xp和Windows7用户路径不同,安装程序会自动识别系统版本,并配置路径.) 运行 "安装.bat&qu...
标签: 服务器
hyper-v虚拟机转换成vmware虚拟机的方法 Hyper-V 是 Microsoft 在 Windows Server 2008 中包含的基于系统管理程序的虚拟化平台。与 Virtual Server 2005 R2(在 Windows Server 2003 操作系统上运行的托管技术)不同,Hyper-V 直接在系统硬件上运行。Hyper-V 可以在 Windows Server 2008 的完全安装上运行,也可以在最小的服务器核心安装...
标签: 服务器
如何连接虚拟机的系统   演示环境 Windows 7 是我电脑使用本机 VMware8.0安装了Linux CentOS 6.2 X32 我先来讲讲我的网络情况,目前我使用的IP地址是192.168.1.99、子网掩码是255.255.255.0、网关是192.168.1.1。而我希望我电脑本机能远程虚拟机的操作系统CentOS,把它弄成同一个网段的。 好,前提下VM里面的Cent...
标签: 服务器
linux使用快照制作虚拟机   制作虚拟机的快照分为以下几个步骤: 1.首先我们要创建存储的逻辑卷来生成模板和快照文件; 2.制作被快照的模板; 3.创建快照。 1.创建逻辑卷: (1)fdisk /dev/sda (制作LVM逻辑卷,然后对磁盘进行重新的扫描;) (2)partx -d /dev/sda partx -a /dev/sda (3)创建lv...

经验教程

788

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部