- 博客(8)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 JAVA程序性能优化
制约程序性能的根源常用的性能评估指标并发:同一时间多少请求访问:如同一时间10个用户请求,并发就是10TPS:transaction per second:相当于写操作QPS:query per second:相当于读请求,从数据库读出写到缓存一般认为是QPS耗时:端到端耗时,从发起到结束,影响用户体验的耗时,包含了网络耗时;服务端耗时,出去了公网的网络带宽,是机房内网串联的耗时;应用程序耗时,摒弃了外围的存储,外围的数据库和外围的一些系统,单纯的应用程序的耗时,最小原子化耗时95线:9
2022-03-11 20:24:16
2743
原创 网络及操作系统相关
select 和epoll数量上限轮询 or 回调select 中socket连接数上限1024个注册到select,轮询查找才能找到所有的读或者写操作epoll linux2.6以上在select基础上改进,去除1024个数限制;socket注册到handler依靠触发回调机制无需遍历https 协议交换https加密,以下混用保证传输过程安全非对称运算ISA对称运算AES1.server端需向CA认证机构申请证书,CA下发证书包含public key 和private key
2022-03-08 19:30:13
2532
原创 MQ消息队列相关
消息队列结构(rocketMQ为例)name server命名查询服务器,存储了所有message broker,topic相关的一些信息,帮助寻址和查找类似配置中心zookeeper服务注册与发现producer消息生产者,并将消息投递到message brokermessage broker消息队列,可以存在多个partition逻辑分区在磁盘级别物理分区consumer group,相对隔离每个group都会消费消息,每个group里只有一个consumer消息消费组consume
2022-03-07 19:36:12
2416
原创 缓存redis
缓存redis数据结构string :最常用hash :可以有子property嵌套结构,方便只召回部分propertylistsetzset:类似java的treeSet实现使用跳表(跳过一定步长)加压缩表的方式,双向链表;数据持久化rdb:存取全量数据,备份和存储周期以另一个线程做驱动aof:存取增量数据;到期写、到次数写...
2022-03-02 19:53:51
524
原创 mysql数据库读写、索引和优化
Mysql 数据库读和写读快照,当前读select * from ** where ** 认为是快照读默认启动只有一条查询的事务,加for update就是当前读,其他事务未提交时当前读会阻塞;update 和delete都是当前读行锁、表锁、间隙所...
2022-02-25 20:17:49
539
原创 多线程问题
线程池ThreadPoolExecutorcoreSize一直存在的线程创建ThreadPoolExecutor时创建;maxSize的创建需要coreSize和queueSize都满了之后;>synchronized和Reenttrantlockjdk1.8以后性能几乎无差别;synchronized为java关键字,无法设置锁的等待超时时间,无法设置公平锁;Reenttrantlock非关键字,可以设置超时时间,可通过配置设置公平锁,控制锁的力度更细;>三种锁重量级锁轻
2022-02-22 19:51:03
431
原创 ConcurrentHashMap加锁力度及LinkedHashMap保持顺序的方式
ConcurrentHashMap加锁力度,学习记录HashMap每个片区阈值>=8时由链表转为红黑树;浮动因子0.75计算hashCode后的每个hash片区;LinkedHashMap保持插入顺序是把key按插入顺序存放在一个链表里TreeMap是红黑树结构,通过实现compareTo排序...
2022-02-21 19:42:35
512
vscode Opening Java Projects: check details
2022-06-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人