您好,欢迎光临本网站![请登录][注册会员]  
文件名称: java gc调优
  所属分类: 其它
  开发工具:
  文件大小: 1mb
  下载次数: 0
  上传时间: 2019-07-03
  提 供 者: weixin_********
 详细说明:NULL 博文链接:https://milk-36.iteye.com/blog/678231为了避免进入OS互斥,Java6的开发者们提出了自旋 锁优化。 自旋锁优化的原理是在线程进入OS互斥前通过CAS 自旋一定的次数来检测锁的释放 如果在自旋次数未达到预硕设值前锁已被释放则当前线 程会立即持有该锁。 CAS检测锁的原理详 n:http://kenwublog.com/theory-of-lightweight- locking-upon-cas 关联选项 XX: Pre block Spin =10 XX: Pre Block Spin=10X+ UseSpi控制多线程自旋锁优化的自旋次数。(什么是自旋锁优 nnIng必须化?见-x:+ UseSpinning处的描述) 先启用,对 java6来说已关联选项 经默认启用X+ Use spinning 了,这里默认 自旋10次 XX+ Scavenge BeforeFu默认启用在FⅷGC前触发一次 Minor gc IIGO XX+ UsegCOverheadli默认启用限制GC的运行时间。如果GC耗时过长,就抛OOM mit XX+ UsetLAB 122以前和启用线程本地缓存区( Thread local) 使用- client选 项时,默认不 启用,其余版 本默认启用 XX:+ UseThread Prioritie默认启用使用本地线程的优先级。 -XX: +UseAltsigs 限于 Solaris,为了防止与其他发送信号的应用程序冲突允许使用候 默认启用补信号替代 SIGUSR1和 SIGUSR2。 限于 Solaris,绑定所有的用户线程到內核线程。 XX+ Use Bound threads默认启用减少线程进入饥饿状态(得不到任何 cpu time)的次 数 XX:+ UselWPsynchroni限于 solaris zation 默认启用 ′使用轻量级进程(内核线程)替换线程同步 XX,+ MaxFDLimit 狠于 Solaris,设置java进程可用文件描述符为操作系统允许的最大 默认启用值 Xx+ UseVMInterruptibl限于 solaris,在sori中,允许运行时中断线程。 elo 默认启用 性能选项 选项与默认值 默认值描述 与限制 XX: AggressiveOpts JDK5启用M开发团队最新的调优成果。例如编译优化 update偏向锁,并行年老代收集等。 6后弓 入但需 要手动 JDK6默 认启用 XX: Compile threshold=1000100通过丌编译器,将方法编译成机器码的触发闯值,可 以理解为调用方法的次数,例如调1000次,将方法编 译为机器码。 XX LargePageSizelnBytes=4默认设置堆内存的内存页大小 amd64调整内存页的方法和性能提升原理,详 fa:2mnhttp:/kenwublog.com/tune-large-page-for-jv m-optimization - XX: MaxHeapFree Ratio=7070GC后,如果发现空闲维内存占到整个预估上限值的 70%,则收缩预估上限值 什么是预估上限值? JM在启动时,会申请最大值(-Xmx指定的数值)的 地址空间,但其中绝大部分空间不会被立即分配 (virtuaL) 它们会一直保留着,直到运行过程中,丿M发现实际 占用接近已分配上限值时,才从 virtual里再分配掉一 部分内存 这里提到的已分配上限值,也可以叫做预估上限值。 引入预估上限值的好处是,可以有效地控制堆的大小。 堆越小,GC效率越高嘛。 注意:预估上限值的大小一定小于或等于最大值 XX. MaxNewsize=size1.31新生代占整个堆内存的最大值 Sparc 32m 3 x86 25r -XX: MaxPermSize=64m 50以Perm(俗称方法区)占整个堆内存的最大值 后:64 it Ms会 增大预 设值的 30% amd64 96m 3.1 client: 32m 其他默 认 24m - XX MinHeapFreeRatio=4040Gc后,如果发现空闲内存占到整个预估上限值的 40%,则增大上限值。 什么是预估上限值?见- XX MaxHeapFreeRatio处 的描述) 关联选项: XX. MaxHeap FreeRatio=70 XX. NewRatio=2 parc新生代和年老代的堆内存占用比例 client:例如2表示新生代占最大堆内存的12,即年老代和新 8 生代平分堆的占用。 86 server 8 86 client: client: 8 (131+ 86:12 其他默 认2 XX NewSize=2.125m 50以新生代预估上限的默认值。(什么是预估上限值?见 后64 XX: MaxHeap FreeRatio处的描述) Vms 增大 预设值 的30 86 86 0以 后 640k 其他默 2125 XX ReservedCode CacheSize solaris设置代码缓存的最大值,编译时用 64-bit amd 64 server 86: 48m 1500 6之前, Solaris 64-bit amd64 1024m 其他默 认 32 XX: Survivor Ratio=8 Solaris eden与 Survivor的占用比例。例如8表示, amnd64 survivor区占用1/8的新生代内存,另外因为有2个 survivor spac所以 survivor总共是占用新生代内存的2/8,Eden的 占比则为6/8。 1.3.1: 25 Solaris ato ms5,0 以前: 32 其他默 认8 XX: TargetSurvivor Ratio=5050实际使用的 survivor:空间大小占比。默认是50%,最 高90% XX: Thread Stack size=512 sparc:线程堆栈大小 512 Solaris x86 20 (50以 256) Sparc 64 bit 1024 md64 1024 (50以 前0 其他默 认512 XX: Use BiasedLocking DK5启用偏向锁。 pdate 6后引偏向锁原理详 入但需见http://kenwublog.com/theory-of-java-biased- 要于动 locking 启用。 JDK6默 认启用 -XX+ UseFastAccessorMetho默认启优化原始类型的getr方法性能。 用 XX - UseISM 默认启启用 solaris的ISM。 用 详见 Intimate Shared Memory -XX:+UseLargePages JDK5启用大内存分页。 update 5后引调整内存页的方法和性能提升原理,详 入但需见http://kenwublog.com/tune-large-page-for-jv 要手动 m-optimization 启用 JDK6默关联选项 人启用。 XX. LargePageSizelnBytes=4m XX+UseMPSS 141启用 solaris的MPSS,不能与ISM同时使用。 之前 不启用 其余版 本默认 启用 XX: String Cache 默认启启用字符串缓存 用 XXA| locate PrefetchLines11与机器码指令预读相关的一个选项,资料比较少,本文 挡不做解释。有兴趣的朋友请自行阅读官方doC。 XX: Allocate PrefetchStyle=1 1 与机器码指令预读相关的一个选项,资料比较少,本文 栏不做解释。有兴趣的朋友请自行阅读官方doc。 调试选项 选项与默认值 默认描述 值与 限制 XX. -CTIme 14引打印丌编译器编译耗时. 默认 启用 XX: ErrorFile=, hs_err_pid.log 6引 XX:- ExtendedDTrace Probe Java6启用 dtrace诊断。 引入 限于 lari s 默认 不启 用 XX HeapDumpPath=java默认堆内存快照的存储文件路径。 pid< pid> hprof ava什么是堆内存快照? 进程当java进程因OOM或 crash被OS强制终止后,会生成 启动个 hprof( Heap PROFling)格式的堆内存快照文件。该 位置,文件用于线下调试,诊断,查找问题 即文件名一般为 user. java___
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: javagc调优
 输入关键字,在本站1000多万海量源码库中尽情搜索: