摘要:
高效并发是JDK 1.6的一个重要主题,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁削除(Lock Elimination)、锁膨胀(Lock Coarsening)、轻量级锁(Lightweight Locki 阅读全文
posted @ 2016-11-24 23:26
duanxz
阅读(852)
评论(0)
推荐(1)
摘要:
竞态条件 线程之间共享堆空间。同一个程序多线程访问同一个资源时,如果对资源的访问顺序敏感,就称存在竞态条件,代码区成为临界区。 例如:先检测后执行。执行依赖于检测的结果,而检测结果依赖于多个线程的执行时序,而多个线程的执行时序通常情况下是不固定不可判断的,从而导致执行结果出现各种问题。 线程安全 什 阅读全文
posted @ 2016-11-24 23:25
duanxz
阅读(1383)
评论(0)
推荐(0)
摘要:
1.概述 Java虚拟机的数据类型可分为两大类:原始类型(Primitive Types,也称为基本类型)和引用类型(Reference Types)。Java虚拟机用不同的字节码指令来操作不同的数据类型 。 2.原始类型 原始类型是最基本的元素,用于构成复杂的引用类型。与世间万物一样,都是由最基本 阅读全文
posted @ 2016-11-24 21:05
duanxz
阅读(2199)
评论(0)
推荐(0)
摘要:
HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。 CMS收集器有3种基本的操作,分别是: CMS收集器会对新生代 阅读全文
posted @ 2016-11-24 18:20
duanxz
阅读(2133)
评论(0)
推荐(0)
摘要:
本系列的最后一部分是有关垃圾收集(GC)日志的JVM参数。GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以优化堆设置和GC设置,或者改进应用程序的对象分配模式。 -XX:+PrintGC 参数-XX:+PrintGC(或者-verbose:gc)开启了简 阅读全文
posted @ 2016-11-24 18:20
duanxz
阅读(986)
评论(0)
推荐(0)
摘要:
在实践中我们发现对于大多数的应用领域,评估一个垃圾收集(GC)算法如何根据如下两个标准: 首先让我们来明确垃圾收集(GC)中的两个术语:吞吐量(throughput)和暂停时间(pause times)。 JVM在专门的线程(GC threads)中执行GC。 只要GC线程是活动的,它们将与应用程序 阅读全文
posted @ 2016-11-24 18:19
duanxz
阅读(2912)
评论(0)
推荐(1)
摘要:
本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation)。首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数。 单纯从JVM的功能考虑,并不需要新生代,完全可以针对整个堆进行操作。新生代存在的唯一理由是优化垃圾回收(G 阅读全文
posted @ 2016-11-24 18:18
duanxz
阅读(813)
评论(0)
推荐(0)
摘要:
理想的情况下,一个Java程序使用JVM的默认设置也可以运行得很好,所以一般来说,没有必要设置任何JVM参数。然而,由于一些性能问题(很不幸的是,这些问题经常出现),一些相关的JVM参数知识会是我们工作中得好伙伴。在这篇文章中,我们将介绍一些关于JVM内存管理的参数。知道并理解这些参数,将对开发者和 阅读全文
posted @ 2016-11-24 18:15
duanxz
阅读(1322)
评论(0)
推荐(0)
摘要:
在这个系列的第二部分,我来介绍一下HotSpot JVM提供的不同类别的参数。我同样会讨论一些关于JIT编译器诊断的有趣参数。 JVM 参数分类 HotSpot JVM 提供了三类参数。第一类包括了标准参数。顾名思义,标准参数中包括功能和输出的参数都是很稳定的,很可能在将来的JVM版本中不会改变。你 阅读全文
posted @ 2016-11-24 18:14
duanxz
阅读(1265)
评论(0)
推荐(0)
摘要:
本篇文章基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值。 -XX:+PrintFlagsFinal and -XX:+PrintFlagsInitial 让我们现在就了解一下新参数的输出 阅读全文
posted @ 2016-11-24 18:14
duanxz
阅读(5862)
评论(0)
推荐(0)
摘要:
现在的JVM运行Java程序(和其它的兼容性语言)时在高效性和稳定性方面做的非常出色。自适应内存管理、垃圾收集、及时编译、动态类加载、锁优化——这里仅仅列举了某些场景下会发生的神奇的事情,但他们几乎不会直接与普通的程序员相关。在运行时,JVM会不断的计算并优化应用或者应用的某些部分。 虽然有了这种程 阅读全文
posted @ 2016-11-24 18:13
duanxz
阅读(1566)
评论(0)
推荐(0)
摘要:
本篇主要讲解如何使用直接内存(堆外内存),并按照下面的步骤进行说明: 相关背景-->读写操作-->关键属性-->读写实践-->扩展-->参考说明 相关背景-->读写操作-->关键属性-->读写实践-->扩展-->参考说明 希望对想使用直接内存的朋友,提供点快捷的参考。 数据类型 下面这些,都是在使用 阅读全文
posted @ 2016-11-24 15:17
duanxz
阅读(1382)
评论(0)
推荐(0)
摘要:
@sun.misc.Contended 介绍 @sun.misc.Contended 是 Java 8 新增的一个注解,对某字段加上该注解则表示该字段会单独占用一个缓存行(Cache Line)。 这里的缓存行是指 CPU 缓存(L1、L2、L3)的存储单元,常见的缓存行大小为 64 字节。 (注: 阅读全文
posted @ 2016-11-24 14:47
duanxz
阅读(3025)
评论(0)
推荐(0)
浙公网安备 33010602011771号