性能调优
文章平均质量分 94
Coding Machine
加油
展开
-
MySQL-03.锁与事务
0706原创 2021-07-06 20:06:56 · 314 阅读 · 0 评论 -
并发编程-02.JAVA内存模型(JMM) 与 volatile 详解
1.Java内存模型JVM定义了一套在多线程读写共享数据时(成员变量,数组)时,对数据的可见性、有序性和原子性的规则和保障。1.1.原子性**定义:**一个操作在CPU中不可以中途暂停再调度,要么全部执行完成,要么全部都不执行问题: 两个线程对初始值的静态变量一个做自增,一个做自减同样做10000次的结果很可能不是0解决关键字: synchronized语法sychronized(对象) { 需要做原子操作的代码}建议:用sychronized对对象加锁的力度建议大一点(减少加解锁原创 2021-05-23 23:12:24 · 370 阅读 · 3 评论 -
并发编程-01.认识底层操作系统与并发基础知识
并发原创 2021-08-29 15:13:27 · 271 阅读 · 0 评论 -
MySQL-04.MySQL的MVCC机制与BufferPool缓存机制
1.MVCC(多版本并发控制)机制 MySQL在默认的可重复读保证了事务较高的隔离性,同样的一条查询SQL,在一个事务中,多次执行查询即使其他事务已提交的修改也不会影响当前事务SQL的查询结果。这种隔离性就是依靠MVCC(Multi-Version Concurrency Control)机制来实现的(可串行化是加互斥锁)。MySQL在读已提交和可重复读隔离级别下都实现了MVCC机制。通过MVCC机制避免了频繁加原创 2021-08-28 20:03:49 · 180 阅读 · 0 评论 -
MySQL-05.MySQL杂谈
MySQL优化,索引原创 2021-04-18 23:26:51 · 475 阅读 · 3 评论 -
MySQL-02.索引优化实例
1.数据准备#1.建立员工表,并创建name,age,position索引,id为自增主键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 DE原创 2021-08-22 23:45:54 · 442 阅读 · 0 评论 -
MySQL-01.深入理解MySQL底层数据结构
一.索引 什么是索引?索引的本质就是一种排好序数据结构。 数据库中的列存在磁盘上,存储不是连续的,索引记录着这些列在磁盘上的位置(地址)。同时,索引也存储在磁盘上。1.索引的数据结构 二叉树 红黑树 Hash B-Tree B+Tree推荐一个数据结构在线演示网https://www.cs.usfca.edu/~galle原创 2021-08-14 21:31:47 · 609 阅读 · 0 评论 -
JVM-05.JVM调优工具及调优方法
1.jps工具作用: 查看当前系统中有哪些JAVA进程2.jmap工具来查看内存信息,实例个数以及占用内存大小文件较长,可以输出为对应的文件,也可以直接查看num:序号instances:实例数量bytes:占用空间大小class name:类名称,[C is a char[],[S is a short[],[I is a int[],[B is a byte[],[[I is a int[][]查看堆内存占用情况(jmap -heap +进程id)堆内存dump生成堆du原创 2021-08-05 00:05:17 · 716 阅读 · 0 评论 -
JVM-01.JVM类加载机制
验证:验证格式是否正确、是否符合Java语言规范等准备:给类的静态变量分配内存,并赋默认值(非指定的值)解析:将符号引用替换为直接引用(内存地址),该阶段会把一些静态方法(符号引用)替换为数据锁住内存的指针或句柄等(直接引用)。–静态链接过程(类加载期间完成),动态链接程序运行期间将符号引用替换为直接引用初始化:对类的静态变量初始化为指定的值,执行静态代码块调用销毁类加载器(实质是类)引导类加载器BootStrapClassLoader:加载支撑JVM运行的位于JRE的lib目录下的核心类库(原创 2021-07-20 21:50:23 · 331 阅读 · 0 评论 -
JVM-02.JVM内存结构
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-05-19 23:13:33 · 705 阅读 · 0 评论 -
JVM-03.对象创建与内存分配
1.对象创建的流程#mermaid-svg-mHg9UcWC9IwBJKoN .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-mHg9UcWC9IwBJKoN .label text{fill:#333}#mermaid-svg-mHg9UcWC9IwBJKoN .node rect,#mermaid-svg-原创 2021-07-25 23:16:09 · 351 阅读 · 0 评论 -
JVM-04.垃圾回收机制
对象首先分配在伊甸园区Eden新生代空间不足时,触发Minor GC,伊甸园和From存活的对象使用Copy算法复制到To区,存活对象加1并交换From区和To区Minor GC会触发STW(Stop The World),暂停其他的用户线程,等待垃圾回收结束,用户线程才恢复运行当对象年龄超过阈值时,会晋升到老年代,最大年龄是15(4bit)当老年代空间不足时,会先尝试触发Minor GC,如果之后空间仍然不足,会触发Full GC,STW时间会更长如果老年代空间不足,会触发OutOfMemory原创 2021-05-20 23:55:01 · 828 阅读 · 0 评论