Java性能优化-1

响应时间的分类

 

性能调优策略

 

 

正则表达式的组成

目前正则表达式引擎有两种

  1. DFA自动机 Deterministic Final Automata 确定有限状态自动机
  2. NFA自动机 Non deterministic Finite Automaton 非确定有限状态自动机

构造DFA代价大于NFA,但DFA执行效率高于NFA
正则表达式库都是基于NFA的,优势是支持更多功能
NFA自动机的回溯,如 "ab{1,3}c"
1.贪婪模式Greedy,尽可能匹配更多内容
2.懒惰模式Reluctant, ab{1,3}?c,会首先选择最小的匹配范围,即匹配1个b字符
3.独占模式Possessive,ab{1,3}+bc,会最大限度匹配更多内容,但匹配失败就会结束匹配,不会回溯
避免低效的回溯方法是,使用懒惰模式,独占模式
 

Stream 操作的分类

它的并行操作是用Fork-Join框架实现的

JDK8的 HashMap数据结构图

Java序列化的缺点
1.无法跨语言
2.太灵活容易被攻击
3.序列化后的流太大
4.序列化性能太差
替代方案
FastJson,Kryo,Protobuf,Hessian,Thrift
单列的对象如果序列化了,也会破坏单列的规则

微服务的核心是 远程通信 和 服务治理(服务的后勤保障)
MVC,RPC,SOA,微服务架构的演变

默认的RMI框架执行图


RMI的缺点
1.Java默认序列化性能不佳
2.TCP短连接
3.阻塞式网络I/O

高并发场景下的RPC框架设计思路
1.选择合适的通讯协议 TCP/UDP
2.单一长连接
3.优化Socket通讯,非阻塞I/O,Reactor线程模型,零拷贝,pipeline模式
4.自定义报文格式


5.编码解码,选择一个序列化框架
6.调整系统参数

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值