自学提高:JVM点滴
写在前面
这年头就是得不断地学习. 学什么东西就看需要了. 不学习很难进步. 同时别人也会超过你. 东西都是网上有的。图片也好,文字也好。基本都可以在网上找到。
JAVA运行原理
JVM包括字节码解释程序,执行器,方法区,堆,VM栈,本地方法栈,Program Counter计数器。
垃圾回收算法
GC主要分二类,新生代GC,老年代GC;
新生代GC包括:串行GC、并行GC、并行回收GC
老年代GC包括:串行GC、并行GC、CMS
G1比较特殊,同时支持新生代和老年代
GC选择:
GC在选择上,主要关注两点,吞吐量优先和暂停时间优先,
对于吞吐量优先的采用server默认的并行GC(Parallel GC)方式(上图蓝色区域),
对于暂停时间优先的选用并发GC(CMS)方式(上图黄色区域),常用场景:互联网、电商类
常用GC开启方式
暂停时间优先: 并行GC + CMS
开启方式[ -XX:+UseConcMarkSweepGC -XX:+UseParNewGC ]
吞吐量优先: 并行回收GC + 并行GC
开启方式 [ -XX:+UseParallelOldGC ] ,此GC也时server模式默认的配置
G1: [ -XX:+UseG1GC ]
适用于服务器端、大内存、多CPU情景的垃圾收集器;
G1的目标是在维持高效率回收的同时,提供软实时中断特性
常用场景:hadoop、elasticsearch
CMS和G1区别
Cms 堆 -> 年轻代老年代
G1 堆 -> 多个区 -> 每个区里(年轻代老年代)
Cms 标记清理算法
G1 压缩复制算法,不产生碎片
G1 时间停顿可设置,相关参数[ -XX:MaxGCPauseMillis=100 -XX:GCPauseIntervalMillis=200 ]
需要注意的是,JDK8中已经用Metaspace(元数据区)完全替代了永久代(即方法区)
而且元数据区内存不在JVM中,而是使用的本地内存,默认情况下受操作系统内存限制。
调整元数据区内存大小的参数 -XX:MetaspaceSize -XX:MaxMetaspaceSize
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
mac安装Elasticsearch
去官网下载https://www.elastic.co/downloads/elasticsearch 本人使用的是2.3.2版本,我下载的是tar版本的,然后解压。 进入es的安装目录, cd elasticsearch-2.3.2 启动es bin/elasticsearch 这时可能会报一个logs文件夹权限问题的错误,由于我直接解决了,没有截图,给logs文件夹赋权限。 sudo chown -R dalaoyang logs 重启es 在页面访问http://localhost:9200/,如下图 image 安装一个可视化插件,elasticsearch-head sudo bin/plugin install mobz/elasticsearch-head 安装成功后,重启es,访问http://localhost:9200/_plugin/head/ 如图 image
-
下一篇
何为大数据平台
数据分为结构化数据(如人员信息、项目信息)和非结构化数据(如图片,文档),传统上讲,我们采用数据库来存结构化数据,如MySQL Oracle SQLServer,用NFS来存非结构化数据。 大数据,意味着数据多,如果记录数达到了上亿,一般数据库可能也就拖不动了。如果存储文件数达到几个T,甚至更多。那么NFS硬件又如何布局呢? 有时可能一台机器上的硬盘插满都不够。 有人说,不是可以用群集么,群集可以解决计算时多台,但解决不了存储容量的扩容。 能否有这样的一个平台: 这样的架构中,数据节点可以随意增加,容量不够,添加个节点就行,总容量等于数据节点之和。然后我们读取数据时,只与总管节点打交道,至于有几个数据节点,对程序来说是透明的。这样的平台,就可以完全达到我们随意扩容的功能。同时针对备份,该平台能自己能解决,一份数据可以直接复制到两个数据节点上,完成备份功能。数据节点所用的服务器,还要以不用再单独配存储设备,直接利服务器自带存储即可。 有这样的平台哇?——有,有个牛人写了这样的软件,名叫Hadoop。 目前业内流行很多大数据平台,如华为、华三、星环、腾讯。 其实本质上都是基于Hadoop来...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境






微信收款码
支付宝收款码