首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
技术
订阅
mumutong
更多收藏集
微信扫码分享
微信
新浪微博
QQ
57篇文章 · 0订阅
【进阶】logback之 RollingFileAppender 的原理及避坑建议
buffer :通俗来说就是化零为整,把少量多次变成多量少次;具体来说就是进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O,以减少响应次数
【进阶】logback之 AsyncAppender 的原理、源码及避坑建议
AsyncAppender 接收日志,放入其内部的一个阻塞队列,专开一个线程从阻塞队列中取数据(每次一个)丢给链路下游的如 FileAppender,把日志写盘 变成 日志写内存,减少写日志的 RT。
原来了解重排序是为了掌握可见性的保障
导致可见性的原因有很多 1. 为了提升性能而实施的编译期重排序。 2. 数据在寄存器中。 3. cpu缓存的更改未同步到主内存中 或 内存中的更改未同步到cpu缓存(运行期重排序)。
ThreadLocal 使用手册 | 建议收藏
Java 中的`ThreadLocal`类允许程序员创建只能由创建它们的线程访问的变量。这对于创建线程安全代码很有用,因为它确保每个线程都有自己的变量副本并且不会干扰其他线程。
【alibaba/jvm-sandbox#01】debug源码的技巧
alibaba/jvm-sandbox是 一种JVM的非侵入式运行期 AOP 解决方案。沙箱容器提供 1. 动态增强类你所指定的类,获取你想要的参数和行信息甚至改变方法执行 2. 动态可插拔容器框架
运行期重排序:内存系统的重排序
CPU提供内存屏障指令,来解决内存系重排序。读屏障清空本地的invalidate queue保证之前的所有load都已经生效;写屏障清空本地的store buffer,使得之前的所有store操作生效
避免重排序之使用 Volatile 关键字
volatile 关键字本身就包含了禁止指令重排序的语义,仅保证赋值过程的原子性,保障变量的可见性,但不具备排它性
Java版管程:Synchronized
同步机制中有经典的管程方案,管程其实就是对共享变量以及其操作的封装: 1. 将共享资源封装起来,对外提供操作这些共享资源的方法。 2. 线程只能通过调用管程中的方法来间接地访问管程中的共享资源
SkyWalking 拓扑功能的性能优化
1. 增加查询的并行度,减少串行耗时。 2. 规避无效查询的触发,避免带来额外消耗。 3. 提升分片检索的命中,缩小检索分片数
遵循Happens-Before规则来保证可见性|而非掌握所有底层
基于JSR -133内存模型提出了happens-before的概念,通过这个概念来阐述操作之间的内存可见性。要保证可见性,就是遵守 Happens-Before 规则,合理的使用java提供的工具。