Posts
All the articles I've posted.
-
Copy on Write原理:fork背后的内存优化魔法
fork 时只复制页表不复制物理页,通过清除写权限位让写操作触发缺页中断才真正复制,将全量拷贝转化为按需增量复制。
-
缓存预热策略——启动时就把热数据装进Redis
服务启动时通过 ContextRefreshedEvent 加 Pipeline 批量写入预热缓存,用分布式锁和就绪探针保障冷启动安全。
-
异步化改造邮件发送——从同步阻塞2秒到异步立即返回
将邮件发送从主线程剥离为异步执行,配合线程池配置与持久化保障,实现用户体验从 2 秒到 50ms 的飞跃。
-
圈复杂度——McCabe公式与重构的数学依据
圈复杂度用 McCabe 公式(V=E-N+2P)量化代码的独立路径数,为重构提供数学依据,指导函数拆分与测试用例设计。
-
乐观锁与悲观锁——读多写少与写多的两种世界观
乐观锁用 CAS/版本号以无锁方式应对低冲突场景,悲观锁用数据库行锁保证强一致性,理解两种世界观的选择依据。
-
Segmented分段锁——从单锁串行到10倍并发的演进
从秒杀库存扣减到 10 倍并发提升——分段锁将全局资源按 userId 分片,不同分段的操作完全并行,配合段间迁移补偿与死锁防护,思想在 ConcurrentHashMap、LongAdder 中均可见。
-
RestTemplate连接池优化——每次new都要三次握手?
揭示 RestTemplate 默认构造器的性能黑洞——每次 HTTP 请求新建 TCP 连接,详解 HttpComponentsClientHttpRequestFactory 连接池化的完整生产级配置。
-
Nginx vs Tomcat——为什么有了Nginx还要用Tomcat?
Nginx(C 语言反向代理零拷贝静态资源)与 Tomcat(Java Servlet 容器业务引擎)分工明确,黄金组合各司其职不可互相替代