1. Sun HotSpot VM,是JDK和Open JDK中自带的虚拟机,也是目前使用范围最广的Java虚拟机。 2.内存分布图 java虚拟机主要分为以下几个区: 方法区: 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的... ...
分类:
其他好文 时间:
2018-06-18 13:27:31
阅读次数:
179
jit用以把程序全部或部分翻译成本地机器码,当需要装载某个类【通常是创建第一个对象时】,编译器会先找到其.class文件,然后将该类的字节码装入内存。 hotspot采用惰性评估法: 如果一段代码频繁的调用方法,或是一个循环,也就是这段代码被多次执行,JIT编译器会参与其中 而如果一个方法从来不被执 ...
分类:
其他好文 时间:
2018-06-15 19:11:45
阅读次数:
200
早期(编译期)优化 java语言编译期 1.前端编译器(编译器的前端):*.java文件 => .class文件 Sun的Javac,Eclipse_JDT中的增量式编译器(ECJ) 2.后端运行期编译器(JIT编译器):字节码转 => 机器码 HotSpot_VM的C1、C2编译器 3.静态提前编 ...
分类:
其他好文 时间:
2018-06-14 20:39:43
阅读次数:
231
深入理解java虚拟机 精华总结(面试)(转) 一、运行时数据区域 3 1.1 程序计数器 3 1.2 Java虚拟机栈 3 1.3 本地方法栈 3 1.4 Java堆 3 1.5 方法区 3 1.6 运行时常量池 4 二、 hotspot虚拟机对象 4 2.1 对象的创建 4 检查 4 分配内存 ...
分类:
编程语言 时间:
2018-06-10 00:28:57
阅读次数:
219
前言 高效并发是程序员们写代码时一直所追求的,HotSpot虚拟机开发团队也为此付出了很多努力,为了在线程之间更高效地共享数据,以及解决竞争问题,HotSpot开发团队做出了各种锁的优化技术常见的有:自适应自旋锁(Adaptive Spinning)、锁消除(Lock Elimination)、锁粗 ...
分类:
编程语言 时间:
2018-06-05 00:43:22
阅读次数:
194
一、VM选项 - : 标准VM选项,VM规范的选项 -X: 非标准VM选项,不保证所有VM支持 -XX: 高级选项,高级特性,但属于不稳定的选项 参见 Java HotSpot VM Options 二、Trace跟踪参数 -XX:+printGC:打印GC的简要信息 -XX:+PrintGCDet ...
分类:
编程语言 时间:
2018-06-03 10:45:06
阅读次数:
253
转自:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断 ...
分类:
其他好文 时间:
2018-06-03 00:57:45
阅读次数:
194
JVM在晚期(运行期)优化时,使用到一种技术 逃逸分析。 补充说明:逃逸分析在1999年就已提出,但是JDK1.6才实现逃逸分析。而且,这项优化目前仍不成熟,仍有很大改进余地。 这是大坑啊,目前在HotSpot中未实现,那创建的对象还是都放在堆内存中,这个文章记录的内容是不是就没什么用了(😭) ...
分类:
编程语言 时间:
2018-05-30 19:27:12
阅读次数:
190
1. 与列族数据库相关的设计要点 列族数据库应该事先成稀疏且多维的 map 在列族数据库中,各个数据行所拥有的列是可以有所不同的 列族数据库的列是可以动态添加的 列族数据库不需要执行连接操作,需要对数据模型去规范化处理 2. 设计数据表格时需遵循的建议 用去规范化来代替连接 善用无值的列 同时在列名 ...
分类:
数据库 时间:
2018-05-30 16:13:06
阅读次数:
187
Java 8 彻底将永久代 (PermGen) 移除出了 HotSpot JVM,将其原有的数据迁移至 Java Heap 或 Metaspace 为什么取消了永久代而用MetaSpace代替了永久代? 在 HotSpot JVM 中,永久代中用于存放类和方法的元数据以及常量池,比如Class和Me ...
分类:
编程语言 时间:
2018-05-23 02:02:39
阅读次数:
220