ssingularity的个人日志

怕什么真理无穷,进一步有进一步的欢喜

书单推荐

之前吃饭的时候,实验室的徐麦小朋友整理了一下我平时推荐过的书籍,并整理成了豆瓣书单,这里附上链接潘博倾情推荐大家有兴趣可以收藏收藏并多多阅读,都是不错的好书哟也愿大家在求知的路上越走越远,进一步有进一步的欢喜!P.S. 另外也祝徐麦小朋友在日后出国的 CS 路上一帆风顺,硕果丰收~

源码阅读系列文章汇总

Netty 源码阅读NIO与Netty概念Netty源码阅读(1)——NioEventLoopGroup创建过程Netty源码阅读(2)——NioEventLoop执行过程Netty源码阅读(3)——服务端启动Netty源码阅读(4)——连接建立Netty源码阅读(5)——PipelineNetty

计算机基础系列文章汇总

计算机网络计算机网络学习笔记(1)—— 物理层与链路层计算机网络学习笔记(2)—— IP层计算机网络学习笔记(3)—— TCP计算机网络学习笔记(4)—— 应用层协议计算机网络学习笔记(5)—— 虚拟网络设备计算机网络学习笔记(6)—— TCP 数据传输机制计算机网络学习笔记(7)—— 虚拟网络组网

算法笔记(持续更新)

循环数组 —— RingBuffer在使用循环数组实现双向队列时,需要注意以下几点:为了避免队列满时的条件与队列空时的条件相同,数组的大小 Capacity 为队列的大小加1front 变量指向队头元素的索引,rear 变量指向下一个队尾元素将被放置的索引队列为空条件为 front == rear,

操作系统学习笔记(6)——内存管理

物理内存与虚拟内存物理内存:操作系统底层使用 Zone 概念划分不同类型的内存,然后针对每块 Zone 使用 64Byte 的 page struct 代表一个 4KB 的实际物理页并使用伙伴系统(分为4KB, 8KB 到 4MB 共 11 个 slot 大小的 Page 链表)进行统一的管理,对于

性能调优(3)—— 方法论与可观测性

性能优化方法不要做:消除不必要的工作。做,但不要再做:缓存。做少点:将刷新、轮询或更新的频率调低。稍后再做:回写缓存。在不注意的时候做:安排工作或在非工作时间进行。同时做:从单线程切换到多线程。做得更便宜:购买更快的硬件。应用程序优化On CPU 分析:基于 Perf Record + 火焰图Off

八股记录

1.动态代理会在运行时生成动态类的字节码并加载到方法区,同时使用对应的类定义开实例化对象。cglib 使用继承的方式动态生成代理类,此时被代理的方法调用自身其他方法时,由于继承的原因其他方法也是被代理增强的子类的方法,jdk 使用实现接口结合 handler 组合原对象的方式动态生成代理类,此时被代

技术管理

前言不想做管理的技术人员不是一个好的开发工程师,在很多情况下,人件的管理会比技术问题更加令人头疼,但也更加可以体现一个人的价值,因此还是建议大家在钻研技术的时候,可以抽空看看技术管理相关的书籍,这篇文章我主要记录一下最近在看《技术管理》一书时做的一些学习笔记管理人员与工程师的区别管理人员要做的事情:

深入实践 DDD——以 DSL 驱动复杂软件开发

在做研究生毕设的时候,本来想针对低代码平台抽象出一套基于 DDD 的 DSL 用于低代码的开发,鉴于毕业设计的学术价值大于工程价值,最终还是没有精力真正实现出来,不过还是把一些设计过程中阅读 DDD 相关书籍中记录的概念总结下来,以供参考。如果大家对于领域驱动设计感兴趣,建议可以读一下《解构领域驱动

无锁并发——环形队列

这里先简单地记录一下 DPDK 中无锁环形队列的大致实现,之后有空会补上更详细的示意图与代码。无锁环形队列的核心在于通过 CAS 实现无锁地预获取资源空间,从而保证之后的操作之间的并发隔离性,进而实现并发地处理各自的资源空间而无需加锁。在具体实现中,生产者和消费者都各自拥有一个 head 指针,代表