自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 JVM-内存分配与回收策略

对象的内存分配,往大的方向上讲,就是在堆上分配,少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数。垃圾收集器组合一般就是Serial+Serial Old和Parallel+Serial Old,前者是Client模式下的默认垃圾收集器组合,后者是Server模式下的默认垃圾收集器组合。TLAB...

2018-07-24 15:19:13 163 1

转载 GC日志分析

垃圾收集器在进行垃圾收集的过程中,可以输出日志,我们通过日志,可以看到当前垃圾收集器的运行情况。通过gc日志,我们可以观察垃圾收集器的行为,以及当前应用程序的GC情况和内存使用情况。学会查看和分析垃圾收集日志,一方面可以帮助我们学习垃圾收集器;另一方面,在必要的时候,可以帮助我们定位问题,解决问题,对JVM进行优化。  默认,JVM不会打印出GC日志信息,可以通过参数-XX:+PrintGC或...

2018-07-24 15:06:13 868 1

转载 jvm gc收集器

单线程GC收集器包括Serial和SerialOld这两款收集器,分别用于年轻代和老年代的垃圾收集工作。多线程收集器还包括Parallel Scavenge和ParallelOld收集器,这两款也分别用于年轻代和老年代的垃圾收集工作,不同的是,它们是两款可以利用多核优势的多线程收集器。相对来说更加复杂的还有CMS收集器。这款收集器,在运行的时候会分多个阶段进行垃圾收集,而且在一些阶段是...

2018-07-24 15:03:02 185

转载 HotSpot的算法实现

1.枚举根节点 从可达性分析中从GC Roots节点找引用为例,可作为GC Roots的节点主要是全局性的引用与执行上下文中,如果要逐个检查引用,必然消耗时间。 另外可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作必须在一个能确保一致性的快照中进行——这里的“一致性”的意思是指整个分析期间整个系统执行系统看起来就行被冻结在某个时间点,不可以出现分析过程中对象引用关系还在不断变化的...

2018-07-24 14:42:25 215

原创 docker jenkins gitlab 自动化部署(java python项目)

背景说明:jenkins 放在docker中,单独一台服务器,称发布服务器; python,java等多个项目放在不同的docker中,统一称运行服务器 代码放在gitlab上,python和java 用spring cloud 整合 本地没有docker 私有仓库 大体结构 开发人员在gitLab上传代码到分支上 Jenkins 定时/手动获取指定分支源码 java项目需打...

2018-07-20 11:51:44 2375 1

原创 jvm性能监控工具

jps:JVM机进程状况工具:用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等jps:显示指定系统内所有的HotSpot虚拟机进程.用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等 jps  -q:只输出LVMID,省略主类的名称  -m:输出虚拟机进程启动时传递给主类main()函数的参数  -...

2018-07-17 17:18:53 137

原创 jvm-垃圾收集算法

标记-清除分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,标记完成后统一回收所有被标记的对象。这种算法的不足主要体现在效率和空间,从效率的角度讲,标记和清除两个过程的效率都不高;从空间的角度讲,标记清除后会产生大量不连续的内存碎片, 内存碎片太多可能会导致以后程序运行过程中在需要分配较大对象时,无法找到足够的连续内存而不得不提前触发一次垃圾收集动作。复制算法  复制算...

2018-07-17 14:57:22 92

原创 jvm GC算法

哪些区域需要GC?jvm内存中,程序计数器,栈的内存分配在编译器可知,是属于线程私有区域,方法结束或者线程结束时,内存回收。堆和方法区内存在程序运行器才知道,内存分配和回收是动态的。判断对象需要被回收?引用计数算法:一个地方引用,计数器加1,引用失效,计数器-1,计数器为0,不可用。jvm较少用这类算法,因为这种算法很难解决对象之间相互引用的情况 可达性分析算法:“GC Root...

2018-07-17 14:40:25 323

原创 jvm 内存管理-常见异常 OutOfMemoryError

OutOfMemoryErrorjvm内存中,除程序计数器外,堆,栈(本地方法栈,虚拟机栈),方法区,都会存在OutOfMemoryError,也就是常说的OOM。堆溢出:不断创建对象,且GC Roots 到对象之间有可达路径,对象不会被GC,对象数量达到堆最大容量限制时候出现OOM,紧接着会出现java heap space 错误。在JVM中如果98%的时间是用于GC且可用的 Hea...

2018-07-17 11:55:49 237

原创 jvm 内存管理-hotspot虚拟机对象内存布局和访问定位

内存布局在hotspot虚拟机中,对象在内存存储布局分为3块:对象头,实例数据,对齐填充对象头包括两部分信息:存储对象自身的运行时数据:哈希码,GC分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳 类型指针:对象指向类元数据的指针,虚拟机通过该指针确定对象是哪个类的实例。 如果是数据,对象头还需有一块记录数组长度的内存(普通java对象可通过元数据确定对象大小,数组不行...

2018-07-17 11:20:32 276

原创 jvm 内存管理-hotspot虚拟机对象创建

        创建对象通常是new 来完成        虚拟机收到一条new指令,首先检查该指令的参数能否在常量池定位到一个类的符号引用,并检查符号引用代表的类,是否已被加载,解析,初始化,如没有,先执行相应的类加载过程。        类加载检查通过后,虚拟机为新生对象分配内存,对象所需内存大小在类加载完成后可完全确定。         对象分配空间:把一块确定大小的内存从jav...

2018-07-16 20:24:56 122

原创 jvm 内存管理-运行时数据区域

 jvm在执行java程序时,会把所管理的内存分为几个不同的数据区域,每个区域有不同的用途,以及创建销毁的时间。    <java虚拟机规范>规定,JVM所管理的内存包括几个运行时数据区域    方法区            被所有线程共享,用于存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码,            方法区无法满足内存分配需求,outo...

2018-07-16 14:56:03 215

转载 微信第三方登陆

转载于https://www.cnblogs.com/skillking/p/6735730.html按博客流程可用,但发现博主少上传了两个类,现加上param类public class Param { public static final CharSequence APPID = "wx90dc72b882ed01c6"; public static final CharSequence ...

2018-05-09 11:08:37 446

原创 将Alfresco与ONLYOFFICE在线编辑整合

第1步.docker安装onlyoffice https://mp.csdn.net/postedit/80250116第2步.安装Gradle添加Gradle存储库sudo add-apt-repository ppa:cwchien/gradle更新包sudo apt-get update安装最新的Gradle版本sudo apt-get install gradle如果您的机器上安装了Gra...

2018-05-09 10:54:57 3322 5

原创 ONLYOFFICE Document Server docker部署

拉取镜像:sudo docker pull onlyoffice/documentserver启动Document Server镜像,并映射80端口至本地。sudo docker run -i -t -d -p 80:80 onlyoffice/documentserverdocker进入onlyoffice容器sudo docker -exec -it onlyoffice/documents...

2018-05-09 10:39:12 3960

原创 alfresco 介绍 docker安装

安装:最新版本(2018 04 EA已集成)docker,docker compose安装github 路径1https://github.com/Alfresco/acs-community-deployment            路径2:https://github.com/Alfresco/acs-community-packaging/tree/master/docker-alfres...

2018-05-09 10:21:36 2811

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除