网站首页 > 技术文章 正文
性能优化
前端优化
浏览器/app
减少请求数
- 合并CSS,JS,图片
- 链接 keep-alive
- 使用客户端缓存静态资源文件缓存在浏览器 Cache-Control和Expires
- 启动压缩 gzip等文本文件压缩率80%左右,但是会给浏览器和服务器带来性能压力。需要权衡测试
- 资源文件加载顺序 浏览器会下载完所有CSS数据后才能开始加载页面,因此CSS文件放在最前面,JS放在最后面
- 减少Cookie传输:每一次响应都会在服务器和浏览器中间传输
- 尽量给用户提示
CND加速
缓存静态资源,部署要求比较高可以考虑商用CDN
反向代理缓存
静态分离等手段
WEB组件分离
浏览器在同一个域名中有最大下载数量的限制。将不同类型的文件使用不同的域名来访问,这样可以有效的加快服务响应速度。
应用优化
缓存
缓存离用户越近越好。对于频繁修改的数据不要进行缓存,读写比例2:1以上,另外缓存的数据一般是热点数据,缓存存在部分时间不一致情况需要考虑。
使用缓存要考虑可用性问题。
- 缓存预热
- 缓存穿透布隆过滤器不存数据缓存
- 分布式缓存与一致哈希
异步处理
同步和异步:关注结果消息的通知机制
阻塞和非阻塞:关注返回结果的状态
综合四种情况 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞
bio、nio、aio
servlet异步(servlet3)
多线程开发
消息队列
集群化
程序
代码级别
- 选择合适的数据结构
- 选择更优的算法
- 编写更少的代码
并发编程
利用CPU多核,尽量使用线程池。合理设置线程数量使用JDK提供的各种并发框架和工具
实现线程安全的类,避免造成线程不安全问题。
尽量减少锁的竞争(缩小锁的颗粒度,读写锁、cas等手段)
资源的复用
- 单例模式
- 池化技术(对比较昂贵的资源进行池化)
JVM
JIT(just in time)编译器线相关的优化
- 热点编译的概念
- 选择编译器类型 -server, -client -XX:+TieredCompilationclient模式热点编译开启的时间比较早server模式开启时间较晚(jdk1.7以后)TieredCompilation 分层编译,启动时按照client模式,一段时间后在按照server模式
- 代码缓存相关 -XX:ReservedCodeCacheSize=N
- 编译阈值方法调用计数器:方法调用了多少次循环回边计数器:循环完成的次数
- 编译线程
- 方法内联-XX:inline(设置是否开启内联默认开始)方法字节码小于325字节才会内联 参数 -XX:MaxFreqInlinesSize=N方法下雨35个字节码一定会内联
- 逃逸分析
GC调优
GC时间小,次数少
- 大多数java应用不需要GC调优
- 大部分需要GC的不是参数问题是代码问题
- GC调优是最后的手段
GC调优的原则
1、根据应用选择合适的GC回收器
2、设置合适的堆大小
3、选择年轻代比例
步骤:
1、监控GC的状态
2、分析结果判断是否需要优化(下面的情况就不需要调优)
minorGC时间 < 50ms ,10S 一次
FullGC执行在1S以下,10分钟以上执行一次
存储性能优化
- 使用SSD硬盘
- 定时清理数据或者按数据的性质分开存放
- 结果集处理
猜你喜欢
- 2024-10-25 什么是喉梗阻 反流性食管炎嗓子疼怎么办
- 2024-10-25 阻塞列队详解!让你轻松理解阻塞列队
- 2024-10-25 【健康科普】认识阻塞性睡眠呼吸暂停低通气综合征
- 2024-10-25 气象科普|阻塞高压为何方神圣?后期它将给我国制造多轮冷空气
- 2024-10-25 非阻塞算法CAS 非阻塞函数
- 2024-10-25 为什么网络 I/O 会被阻塞?I/O 到底是什么?
- 2024-10-25 如何用Java设计阻塞队列,再说说ArrayBlocking和LinkedBlocking
- 2024-10-25 使用 Python Socket 实现非阻塞 I/O入门讲解
- 2024-10-25 梗阻性无精子症:多种选择,何为最佳?
- 2024-10-25 焦耳小偷 一个神奇的电路 焦耳小偷电路需要注意的地方
你 发表评论:
欢迎- 最近发表
-
- 吴谨言专访大反转!痛批耍大牌后竟翻红,六公主七连发力显真诚
- 港股2月28日物业股涨幅榜:CHINAOVSPPT涨1.72%位居首位
- 港股2月28日物业股午盘:CHINAOVSPPT涨1.72%位居首位
- 港股3月2日物业股涨幅榜:CHINAOVSPPT涨1.03%位居首位
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%
- 天赋与心痛的背后:邓鸣贺成长悲剧引发的深刻反思
- 冯小刚女儿徐朵追星范丞丞 同框合照曝光惹人羡,回应网友尽显亲民
- “资本大佬”王冉:51岁娶小17岁童瑶,并承诺余生为娇妻保驾护航
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%位居首位
- 「IT之家开箱」vivo S15 图赏:双镜云窗,盛夏风光
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)