Java内存模型是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码特别是并发编程时有很大帮助。由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。 首先,我们回顾一下Java程序执行流程: 如上图所示,首先Java源代码文件 ...
分类:
其他好文 时间:
2019-04-10 11:52:22
阅读次数:
181
breaker的估算,是根据语句以及上层的结果数,加上固定的值,不准确。 cache.size是cache到结果的size,准确。 所以,配置breaker不能拦截占用内存的聚合查询,而配置cache.size可以限制cache占用的内存。 keyword,ip等类型的聚合也会占用fielddata ...
分类:
系统相关 时间:
2019-04-09 18:32:54
阅读次数:
183
这篇文章应该是目前最详细的对Java内存区域讲解的文章了
分类:
编程语言 时间:
2019-04-04 19:07:58
阅读次数:
186
内存分配,主要指的是在堆上的分配, 一般的,对象的内存分配都是在堆上进行,但现代技术也支持将对象拆成标量类型(标量类型即原子类型,表示单个值,可以是基本类型或String等),然后在栈上分配,在栈上分配的很少见,我们这里不考虑。 Java内存分配和回收的机制概括的说,就是:分代分配,分代回收。 对象 ...
分类:
编程语言 时间:
2019-04-03 12:51:26
阅读次数:
229
如何在高性能服务器上进行JVM调优;以便充分利用高性能服务器的硬件资源,有两种JVM调优方案。 一、 采用64位操作系统,并为JVM分配大内存 分析:如果JVM中堆内存太小,那么就会频繁地发生垃圾回收,而垃圾回收都会伴随不同程度的程序停顿。 a) 优点:扩大堆内存的话可以减少垃圾回收的频率,从而避免 ...
分类:
其他好文 时间:
2019-03-31 18:03:12
阅读次数:
145
线程(包括安全性和多线程等方面) 线程安全 1从原理来看(JMM(java内存模型)的设计) https://my.oschina.net/u/1778239/blog/1610185 https://my.oschina.net/u/1778239/blog/1613240 2具体的例子&线程安全 ...
分类:
其他好文 时间:
2019-03-30 01:16:04
阅读次数:
172
勿在流沙筑高台,出来混迟早要还的。 做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 上一篇分析了ClassLoader的类加载相关的核心源码,也简单介绍了ClassLoader的设计思想,读源码相对来说是比较枯燥的,还是这个是必须要走的过程,学习源码中的一些思想,一些精 ...
分类:
编程语言 时间:
2019-03-29 00:57:06
阅读次数:
161
Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。 这些区域各有个的用途、以及创建和销毁时间,有的随虚拟机进程的启动而存在,有的则依赖于用户线程的启动和结束而建立和销毁。 Java虚拟机主要分为5部分:方法区、虚拟机栈、本地方法栈、堆、程序计数器。 程序计数器:是一 ...
分类:
编程语言 时间:
2019-03-28 00:48:52
阅读次数:
188
JVM将内存划分为:(通过配置合理的jvm各内存大小) New(年轻代) Tenured(年老代) 永久代(Perm) 垃圾回收算法(通过配置合适垃圾回收算法进行调优) 垃圾回收算法可以分为三类,都基于标记-清除(复制)算法: Serial算法(单线程) 并行算法 并发算法 性能调优 对程序及JVM ...
分类:
其他好文 时间:
2019-03-28 00:25:01
阅读次数:
156