调优
文章平均质量分 65
yan_pengfei
这个作者很懒,什么都没留下…
展开
-
调优之池化技术和异步化以及锁优化
对象池http://commons.apache.org/proper/commons-pool/index.html原创 2021-03-10 21:22:51 · 117 阅读 · 0 评论 -
数据库调之索引和语句优化
https://dev.mysql.com/doc/refman/8.0/en/optimization-indexes.htmlB-Tree和B+Tree的差异B+Tree有n个子节点的节点中有n个关键字 B-Tree是n个子节点的节点中有n-1个关键字 B+Tree中,所有的叶子节点中包含了全部关键字的信息,且叶子节点按照关键字的大小顺序连接 B-Tree的叶子节点不包含全部关键字 B+Tree中,非叶子节点仅用于索引,不保存数据记录,记录存放在叶子节点中 B-Tree中,非叶子节原创 2021-03-07 21:27:38 · 143 阅读 · 0 评论 -
数据库调优慢查询
慢查询日志分析使用方式一[mysqld]log_output='FILE,TABLE';slow_query_log=on;long_query_time=0.01然后重启mysql例如service mysqld restart使用方式二使用全局变量设置这种方式无序重启即可生效,但一旦重启需要重新配置set global slow_output='FILE,TABLE';set global slow_query_log='on';set global long_que..原创 2021-03-06 20:43:06 · 190 阅读 · 1 评论 -
jvm调优工具
https://docs.oracle.com/en/java/javase/11/tools/https://chriswhocodes.com/hotspot_option_differences.htmlhttps://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html内置工具监控工具jps可以使用该jps命令列出目标系统上已检测到的JVM进程,此命令是实验性的jps [-q] [-mlvV][host原创 2021-03-05 17:38:24 · 257 阅读 · 0 评论 -
读《深入理解Java虚拟机》笔记(一)Jvm的内存区域
Jvm的内存区域图一 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型中,字节码解释器工作时就是通过改变这个技术器的值来取下一条要执行的字节码指令,分支,循环,异长,跳转,线程恢复等基础功能都需要依赖这个计数器来完成。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对...原创 2018-07-27 22:09:42 · 147 阅读 · 0 评论 -
jvm优化之方法内联和逃逸分析
方法内联的条件方法体足够小热点方法:如果方法体小于325字节会尝试内联,可用-XX:FreqInlineSize修改大小 非热点方法:如果方法体小于35字节会尝试内联,可用-XX:MaxInlineSize修改大小被调用方法运行的实现可以被唯一确定static,private,final,JIT可以确定具体实现的代码 public的实例方法,指向的实现可能是自身,父类,子类的代码,当JIT可以确定具体实现的代码时才有可能实现内连内连的问题:codeCache的溢出,导致jvm退化成解释执行原创 2021-03-04 20:39:15 · 431 阅读 · 2 评论 -
java内存模型jmm
java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存取出变量的细节。java内存模型规定了所有的变量都要存放在主内存中,每条线程还有自己的工作内存。线程的工作内存中保存了被该线程使用到的变量内存的副本拷贝,线程对变量的所有操作都要在工作内内中进行,而不能直接读写主内存中的变量。不同线程之间变量的值的传递需要线程,工作内存,主内存之间的交互完成。JVM规范定义了线程对内存间交互操作:Lock(锁定):作用于主内存中的变量,把一个变量标识为一条线程.原创 2020-07-17 12:54:32 · 126 阅读 · 0 评论 -
读《深入理解Java虚拟机》笔记(五)内存分配与回收策略
对象的内存分配往大的方向说,就是在堆上分配,主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按照线程优先在TLAB上分配。书上的测试使用的是Client模式虚拟机运行,也就是serial/serial old收集器下的内存分配和回收策略。对象优先在Eden空间分配,当Eden区没有足够的空间进行分配时,虚拟机将发起一次Minor Gc.也就是新生代GC-----指发生在新生代的垃...原创 2018-07-30 17:33:59 · 206 阅读 · 0 评论 -
读《深入理解Java虚拟机》笔记(四)垃圾收集器
Serial收集器:最基本,发展历史最悠久的收集器。一个单线程的收集器只会使用一个cpu或者一条线程去完成垃圾收集工作更重要的是在进行垃圾收集时,必须暂停所有的工作线程,直到它收集结束。依然是虚拟机运行在Client模式下的默认新生代器。ParNew收集器:除了多线程收集之外,和Serial收集器没有多大区别,是许多运行在Server模式下的虚拟机中首选的新生代收集器,只有它和Serial...原创 2018-07-30 15:37:15 · 200 阅读 · 0 评论 -
读《深入理解Java虚拟机》笔记(三)垃圾收集算法
Java内存运行时的区域中,程序计数器,虚拟机栈,本地方法栈随线程而生,线程而亡。栈中栈帧随着方法的进入和退出有条理的执行着出栈和入栈操作。随着方法结束或者线程结束时,内存自然就跟着回收了。而java堆和方法区的内存和回收都是动态的,垃圾收集器所关注的就是这部分内存。堆中垃圾回收机制在对象回收之前第一件事情就是确定那些对象还存活。判断对象是否存活的算法常见的有两种。引用计数器...原创 2018-07-30 11:21:38 · 194 阅读 · 0 评论 -
读《深入理解Java虚拟机》笔记(二)Jvm的对象管理
对象的创建虚拟机遇到一条new执行命令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类符号的引用,并且检查这个符号引用代表的类是否已经被加载,解析和初始化。如果没有那么就先必须执行相应的类加载过程,以后再讨论。再类加载通过后,虚拟机将为新生对象分配内存,对象所需内存的大小早类加载完成后便可以完全确定。虚拟机维护着一个列表,记录上那些内存块是可用的,在分配的时候从列表中找到一块足够...原创 2018-07-28 11:31:37 · 261 阅读 · 0 评论 -
jvm的性能调优的学习(二)
1 垃圾收集器 serial串行收集器:serial,serial old parallel并行收集器:parallerl scavenge,parallel old,强调吞吐量 concurrent并发收集器:cms,G1,强调停顿时间 并发与并行的含义并发:指的是用户线程和垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),垃圾收集的时候不会停 止用户线程的运行。并行:指的是多条垃圾收集线程并行工作,但此时用户线程仍在处于等待状态s原创 2020-06-11 12:46:12 · 98 阅读 · 0 评论 -
jvm的性能调优的学习(一)
1 基于jdk命令行的工具1.1jvm的参数类型标准参数-help-server -client-version -showversion-cp -classpathX参数非标准化参数-Xint :解释执行-Xcomp : 第一次使用就编译成本地代码-Xmixed: jvm决定是否编译成本地代码XX参数 Boolean类型格式:-XX:[+-]<name>标识启用或者禁用name属性案例:-XX:+UseG1Gc key=valu.原创 2020-06-10 16:52:34 · 121 阅读 · 0 评论