性能优化专题
文章平均质量分 83
wangzhipeng47
这个作者很懒,什么都没留下…
展开
-
原创--JVM详解
第一节:内存结构 为什么要了解虚拟机 JVM 不单单只支持 Java 语言,也支持其他语言(Scala、Kotlin、Groovy 等等) 区块链 2.0--以太坊(比特币是区块链 1.0) 中提供了 EVM 的虚拟机,它的实现和 JVM 类似,基于栈、生成脚本编译成字节码来执行。知 识通用。(理论大于实际) 虚拟机历史 了解即可,无需关注 解释执行和编译执行(针对字节码的执行) 解释执行就是边翻译为机器码边执行、即时编译(编译执行)就是先将一个方法中的所有字节码全部编译成机原创 2021-06-26 10:48:20 · 1010 阅读 · 0 评论 -
jvm最全详解-06-JVM调优实战及常量池详解
jvm最全详解-06-JVM调优实战及常量池详解阿里巴巴Arthas详解Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6+, 采用命令行交互模式,可以方便的定位和诊断线上程序运行问题。Arthas 官方文档十分详细,详见:https://alibaba.github.io/arthasArthas使用# github下载arthaswget https://alibaba.github.io/arthas/arthas-..原创 2020-07-30 16:24:04 · 563 阅读 · 0 评论 -
常见的 OOM 异常分析
常见的 OOM 异常分析(硬核干货)在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。本篇主要包括如下 OOM 的介绍和示例: java.lang.StackOverflowError java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: GC overhead limit exceede.原创 2020-07-30 15:54:32 · 608 阅读 · 0 评论 -
jvm内存结构详解
2万字长文包教包会 JVM 内存结构直击面试反正我是带着这些问题往下读的 说一下 JVM 运行时数据区吧,都有哪些区?分别是干什么的? Java 8 的内存分代改进 举例栈溢出的情况? 调整栈大小,就能保存不出现溢出吗? 分配的栈内存越大越好吗? 垃圾回收是否会涉及到虚拟机栈? 方法中定义的局部变量是否线程安全? 运行时数据区内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实..原创 2020-07-30 15:49:08 · 570 阅读 · 0 评论 -
jvm最全详解-05-JVM调优工具详解及调优实战
jvm最全详解-05-JVM调优工具详解及调优实战前置启动程序事先启动一个web应用程序,用jps查看其进程id,接着用各种jdk自带命令优化应用Jmap此命令可以用来查看内存信息,实例个数以及占用内存大小jmap -histo 14660 #查看历史生成的实例jmap -histo:live 14660 #查看当前存活的实例,执行过程中可能会触发一次full gc打开log.txt,文件内容如下:num:序号 instances:实例数量 b..原创 2020-07-29 04:45:18 · 603 阅读 · 0 评论 -
jvm最全详解-04-JVM垃圾收集器详解
jvm最全详解-04-JVM垃圾收集器详解垃圾收集算法分代收集理论当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标.原创 2020-07-29 04:43:45 · 233 阅读 · 0 评论 -
jvm最全详解-03-JVM内存分配机制与垃圾回收算法
jvm最全详解-03-JVM内存分配机制与垃圾回收算法对象的创建对象创建的主要流程:1.类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。2.分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类 加载完成后便可完全..原创 2020-07-29 04:42:28 · 499 阅读 · 0 评论 -
jvm最全详解-02-JVM内存模型深度剖析
jvm最全详解-02-JVM内存模型深度剖析JDK体系结构Java语言的跨平台特性JVM整体结构及内存模型二、JVM内存参数设置Spring Boot程序的JVM参数设置格式(Tomcat启动直接加在bin目录下catalina.sh文件里):java -Xms2048M -Xmx2048M -Xmn1024M -Xss512K -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -j...原创 2020-07-29 04:41:17 · 300 阅读 · 0 评论 -
Arthas - 定位处理监控工具
目录前言 1、Arthas 介绍 2、Arthas 使用场景 3、Arthas 怎么用 3.1 安装 3.2 运行 3.3 web console 3.4 常用命令 3.5 退出 4、Arthas 常用操作 4.1 全局监控 4.2 CPU 为什么起飞了 4.3 线程池线程状态 4.4 线程死锁 4.5 反编译 4.6 查看字段信息 4.7 查看方法信息 4.8 对变量的值很是好奇 4.9 程序有没有问题 4.9...原创 2020-07-10 18:52:25 · 1219 阅读 · 1 评论 -
jvm-性能优化专题-jvm最全
1.类加载机制深度剖析1、类加载过程多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。主类在运行过程中如果使用到其它类,会逐步加载这些类。注意,jar包里的类不是一次性全部加载的,是使用到时才加载。类加载到使用整个过程有如下几步:加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载..原创 2020-05-15 11:36:48 · 660 阅读 · 0 评论 -
mysql性能优化专题-mysql
2.mysql索引优化实战一示例表CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` varchar(20) NOT NULL DEFAULT '' COMME.原创 2020-05-15 11:28:03 · 16934 阅读 · 0 评论