Redis订阅模式在生产环境引起的内存泄漏
内存泄漏 内存泄漏指的就是在运行过程中定义的各种各样的变量无法被垃圾回收器正常标记为不可达并触发后续的回收流程,主要原因还是因为对可回收对象引用没有去除,导致垃圾回收器通过GC ROOT可达性分析时认为当前是可达的;这时随着系统的运行时间,累积的不可回收的对象就越多,直到垃圾回收器执行Full »
内存泄漏 内存泄漏指的就是在运行过程中定义的各种各样的变量无法被垃圾回收器正常标记为不可达并触发后续的回收流程,主要原因还是因为对可回收对象引用没有去除,导致垃圾回收器通过GC ROOT可达性分析时认为当前是可达的;这时随着系统的运行时间,累积的不可回收的对象就越多,直到垃圾回收器执行Full »
JVM整体结构 本文主要说的是HotSpot虚拟机, JVM 全称是 Java Virtual Machine,中文译名:Java虚拟机 简化一下: Java字节码文件 Class文件本质上是一个以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,JVM根据 »
JVM整体结构 本文主要说的是HotSpot虚拟机, JVM 全称是 Java Virtual Machine,中文译名:Java虚拟机 简化一下: Java字节码文件 Class文件本质上是一个以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,JVM根据 »
目录 什么是 Safe Point 为啥需要 Safe Point 总结 参考资料 JVM垃圾回收安全点Safe Point GC安全点(Safepoint) 如何在GC发生时,检查所有线程都跑到最近的安全点停顿下来呢? 安全区域(Safe Region) 程序实际执行时: 大家好,我 »
背景 之前做的小工具一个jsqlparse+git做的小工具帮我节省时间摸鱼昨天突然停止工作,看了下jvm并没有退出,但是看日志确实有不少Error输出,虽说是一个普通的NPE,但是分析了一下却疑点重重,所以花点时间来一探究竟,最终又掌握一个jvm知识点,还是比较有意思。 错误现场 以下是示例代 »
Java JVM内存结构的面试常问知识 说说JVM内存整体的结构?线程私有还是共享的? JVM 整体架构,中间部分就是 Java 虚拟机定义的各种运行时数据区域。 Java 虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则 »
作为Java程序员,除了业务逻辑以外,随着更深入的了解,都无法避免的会接触到JVM以及垃圾回收相关知识。JVM调优是一个听起来很可怕,实际上很简单的事。 感到可怕,是因为垃圾回收相关机制都在JVM的C++层实现,我们在Java开发中看不见摸不着;而实际很简单,是因为它说到底,也只是JVM替我们实现的 »
java-jvm-tool Jstatd 远程连接(推荐) 不用重启项目 远程机配置 [demo@localhost jvmtest]$ vi jstatd.all.policy# 内容grant codebase "file:/home/demo/jdk1.8.0_171/lib/tools.ja »
JVM调优 什么时候JVM调优 要对Java应用程序进行调优,优化JVM并不是第一选择。我们首先应该考虑软件架构和代码优化等方面,这方面的优化可能会取得更大的进步空间。因此假设我们已经对于软件架构、代码优化、数据库优化等等做过了一些努力,接着我们希望通过JVM调优来做一些事情,那么我们可以接着往下读 »
0 序言 背景 近期生产系统遇到了一个线程方面的问题,目前根因已定位到。现将fastthread这一诊断工具做一小结,便于以后快速使用 FastThread FastThread是一款针对Java线程分析的工具,可以帮助用户分析线程转储文件,查找线程问题,识别性能瓶颈等。 https:/ »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »
前言 主要根据vue官网文档完成。对一些平时可能会用到的知识、组件进行收集,为的是对vue的可用性有一个大致的了解。博客中的组件介绍可能只涉及简单用法,完整用法还是以官网为准。 基础 启动过程: 主文件(main.js)是程序的起点,在主文件里挂在容器。如app.mount( »