写点什么

week9- 作业二: 根据当周学习情况,完成一篇学习总结

用户头像
未来已来
关注
发布于: 2020 年 12 月 20 日

一、数据库的基本原理

1、PrepareStatement 预编译

2、数据库架构

2.1、连接器:TCP 长连接

2.2、语法分析器

2.3、语义分析与优化器

2.4、执行引擎,执行计划

3、为什么 PrepareStatement 更好

3.1、预先提交带占位符的 SQL 到数据库进行预处理,提前生成执行计划,当给定占位符参数,真正执行 SQL 的时候,执行引擎可以直接执行,效率更好一点;

3.2、可以防止 SQL 注入攻击;

4、B+树、聚簇索引、非聚簇索引;

5、添加必要的索引优化 SQL 查询性能;

6、合理使用索引,不要盲目添加索引,尤其在生产环境中,添加索引的 alter 操作会消耗较长时间(分钟级)

7、数据库事务 ACID

8、数据库事务日志

二、JVM 虚拟机架构原理

1、JVM 组成架构

1.1、类加载器

1.2、方法区、堆、Java 栈、程序计数寄存器

1.3、执行引擎

2、Java 字节码文件

3、字节码执行流程

4、Java 字节码文件编译过程:

5、类加载器的双亲委托模型;

6、自定义类加载器;

7、堆 &栈

8、方法区 &程序计数器

9、Java(线程)栈

10、线程工作内存 & volatile

11、Java 运行环境

三、JVM 垃圾回收性能分析

1、JVM 的垃圾回收

2、JVM 分代垃圾回收

3、JVM 垃圾回收器算法

4、G1 垃圾回收内存管理机制

5、Java 启动参数-标准参数、非标准参数、非 Stable 参数;

6、JVM 性能诊断工具 JPS、JSTAT、JMAP、jstack

四、Java 代码优化技巧及原理

1、合理并谨慎使用多线程 IO 阻塞、锁等待;

2、竞态条件与临界区;

3、Java 线程安全;

4、ThreadLocal;

5、Java 内存泄漏;-长生命周期对象、静态容器、缓存;

6、合理使用线程池和对象池;使用合适的 JDK 容器类(顺序表、链表、Hash);缩短对象生命周期,加速垃圾回收;使用 I/O buffer 及 NIO;优先使用组合代替继承;合理使用单利模式;

五、系统性能优化案例-秒杀系统(上)

1、XXXX 性能现状;正常流量情况;高并发下的风险;高并发下的事故;秒杀;

2、高并发对网站性能的影响;

3、高并发实例:XXX.com 开业秒杀活动

3.1、商业需求

3.2、技术挑战

六、系统性能优化案例-秒杀系统(下)

1、XXXX.com 秒杀系统:服务器和网络准备

1.1、服务器准备(距秒杀开始仅五天时间来不及采购)

1.2、带宽准备

2、XXXX 秒杀系统:组成

2.1、秒杀商品列表,秒杀商品介绍,下单

3、XXXX.com 秒杀系统:设计原则-静态化、并发控制,防秒杀器、简化流程、前端优化;

4、三道阀门的设计;

5、秒杀器的预防;

6、秒杀静态页面优化;

7、交易系统性能优化;

8、应急预案;

9、采用更轻量/快速的服务器

10、前端优化自动化;

11、架设镜像站组建山寨 CDN

12、采用反向代理 加速核心页面

13、海量数据的透明垂直切分

用户头像

未来已来

关注

还未添加个人签名 2019.02.26 加入

还未添加个人简介

评论

发布
暂无评论
week9-作业二: 根据当周学习情况,完成一篇学习总结