底层剖析
文章平均质量分 82
CSU_THU_SUT
THU研究僧,研究方向:AI安全 模糊测试 隐私计算。曾在滴滴国际化产品技术部,长亭科技云原生安全项目组实习。
关注我,一起变强!
展开
-
【数据库】加 Redis 就无懈可击? —— 缓存雪崩、击穿、穿透的破解之道
一般来说,目前的系统设计上为了缓解数据库峰值压力,都会增加 Redis 作为第一道屏障,但是其依然存在一些不足。总结起来是三大问题,分别是缓存雪崩、缓存击穿和缓存穿透。本文旨在说清楚三个问题的原因及相应的防范策略。以 Redis 为代表的 NoSQL 之所以可以缓解数据库峰值压力是因为部分请求在 Redis 上即可完成,无需真正达到数据库。而下列三大问题的原因都与缓存有关,如 Key 失效,或有意构造无效 Key 绕过缓存数据库。原创 2024-04-14 19:57:56 · 343 阅读 · 0 评论 -
【System】系统编程基础:编译和链接
系统编程地基,程序编译时发生了什么?原创 2023-10-12 11:23:34 · 393 阅读 · 0 评论 -
【性能调优】真实体验 “系统调用是重开销”
实践背景是开发云原生背景下的指纹识别插件,主要针对的是镜像、容器等云时代的软件资产。频繁的系统调用将造成性能大幅下降,在具体场景中更真实地体会它有“多重”。原创 2023-06-01 23:04:30 · 553 阅读 · 0 评论 -
AFLCHURN 源码阅读
aflchurn 源码阅读,抽丝剥茧原创 2023-01-04 17:20:26 · 291 阅读 · 1 评论 -
深入理解 LLVM pass
LLVM 简介和 LLVM pass 示例,并更深入剖析其原理。原创 2022-12-28 22:08:09 · 836 阅读 · 0 评论 -
Git源码(Linus 版本)详解
git 最初版本的源码阅读原创 2022-11-30 13:45:17 · 2831 阅读 · 0 评论 -
汇编语言快速回顾(以x86_64为例)
语法规则使用 AT&T,可以作为本科汇编内容的补充。现代汇编环境下的汇编语言、汇编器与计算机架构。原创 2022-11-28 11:13:23 · 1304 阅读 · 0 评论 -
MySQL两种引擎的区别
InnoDB引擎(1)这是MySQL5.5之后的默认存储引擎,它提供了对ACID事务的支持。所谓ACID事务指:Automicity(原子性),指事务是一个不可分割的工作单元,事务中的操作要么都发生,要么都不发生。Consistency(一致性),事务前后数据的完整性必须保持一致。Isolation(隔离性),事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。Durability(持久性),持久性指事务一旦被提交,它对原创 2021-07-08 16:36:10 · 792 阅读 · 0 评论 -
ReentrantLock底层原理
简介一言以蔽之:ReentrantLock主要基于CAS和AQS实现,支持公平锁和非公平锁。CAS:见CAS、悲观锁、乐观锁,看完直接骑脸输出AQS:AbstractQueuedSynchronizer(抽象队列同步器)类的简称,是一个用于构建锁和同步容器的框架。concurrent包内许多类都是基于AQS实现的,例如ReentrantLock、Semaphore、ReentrantReadWriteLock(读写锁)等。ReentrantLock的基本实现:一个线程通过CAS尝试获得锁,若此时已原创 2021-07-08 00:13:05 · 712 阅读 · 0 评论 -
Synchronized底层实现原理
应用Synchronized的情况我们应用Synchronized时一般有以下两大形式1. 给方法上锁修饰实例方法。调用该方法时,锁住的是该方法对应的某个类的实例对象。// 给实例方法上锁public synchronized void method(){ ...}修饰静态方法。调用该方法时,锁住的是该方法对应的整个类(类对象)。// 给静态方法上锁public synchronized static void method(){ ...}2.同步代码块锁住的是某类原创 2021-07-07 19:53:29 · 137 阅读 · 0 评论