AI 时代的无力感 AI时代的无力感我在哔哩哔哩一直有几个非常喜欢的 up 主,内容比较深刻又由浅入深,一个是 学java的生生,一个是 编程不良人,当然除这些外还有很多优秀的 up 主,通俗易懂讲解 AI 技术的 马克的技术工作坊、一直在分享一些视频的尚硅谷、黑马、马士兵等(不管这些教学的深度亦或者引流的目的,确实让普通人可以免费对很多技术栈至少可以入门)…… 在前天(2026-04-14),上述中的一位发了一篇动 2026-04-16 #Agent #思考
系统性能优化之锁篇 系统性能优化之锁篇多线程下为了确保程序不会出错,必须加锁后才能访问共享资源。锁也是有层级之分的,在不同的场景下加不同的锁,对系统性能也有着很大影响。 互斥锁与自旋锁互斥锁与自旋锁是最底层的两个锁,其他的锁几乎都是基于此实现的。**互斥锁加锁失败时会释放CPU进入阻塞状态,自旋锁则会忙等待**。 **当无法确定锁住的代码需要执行多久时,应当首选互斥锁。**互斥锁是一种独占锁,当被线程取得后,除非线程 2026-04-27 性能优化 > 通用 #性能优化 #锁
系统性能优化之磁盘篇 系统性能优化之磁盘篇磁盘作为计算机中速度最慢的硬件之一,常常是系统的性能瓶颈,优化磁盘一般能得到明显的提升~ 文章前部分以如何高效的传输文件来讨论针对磁盘的优化技术,如零拷贝、直接 IO、异步 IO等,后部分介绍 SSD 和 HDD 的区别,探讨如何编写对 SSD 友好的程序。 最简单的网络传输 最简单的方式的当然是找到文件存储的路径,创建一个固定的大小的缓冲区,每次读取缓冲区大小的文件内容, 2026-04-27 性能优化 > 通用 #性能优化 #磁盘
Netty如何高效使用内存 Netty 如何高效使用内存系统性能优化之内存篇 中提到了如何更好的使用内存,本篇以 netty 为例赏析 netty 中的内存使用技巧。 基本类型 vs 包装类Java 中的对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。在64位虚拟机中对象头就需要占用64bit的空间,比一些基本类型(byte、short、 2026-04-27 源码分析 > Netty #源码分析 #内存 #Netty
系统性能优化之内存篇 系统性能优化之内存篇绝大部分的高级语言都是用 C 语言编写的,包括 Java,申请内存(堆外内存)必须经过 C 库,而C 库会通过预分配更大的空间作为内存池,来加快后续申请内存的速度,同时这种池化技术有很多优点,例如 内存池中可以利用享元模式将常用的对象一直保留着,减少重复申请导致的性能的顺耗等。但预分配更大的空间也可能导致 Java 进程的内存占用超出 Xmx 的限制。 隐藏的内存池当代码申请内 2026-04-24 性能优化 > 通用 #内存 #性能优化
系统性能优化之CPU篇 系统性能优化之CPU篇其实除了 CPU 的频率,多核架构以及多 CPU 架构对系统运行的性能也是很大影响的,那么该如何充分利用 CPU 呢? CPU 架构首先介绍一下当前主流的 CPU 架构,现在的系统基本都是多 CPU,一个 CPU 处理器中一般有多个运行核心,我们把一个运行核心称为一个物理核,每个物理核都可以运行应用程序。每个物理核都拥有私有的一级缓存(Level 1 cache,简称 L1 2026-04-23 性能优化 > 通用 #性能优化 #CPU
Oauth2的4种许可模式 Oauth2的4种许可模式Oauth 即 Open auth ,一种开放授权协议,通过为每个第三方软件和每个用户的组合分别生成对受保护资源具有受限的访问权限的凭据,也就是访问令牌,来代替之前的用户名和密码。而生成访问令牌之前的登录操作,又是在用户跟平台之间进行的,第三方软件根本无从得知用户的任何信息,使第三方软件调用大量 API 的时候,不再传输用户名和密码,从而减少网络安全的攻击面。 假如你是一 2026-04-22 #Oauth2
Linux-JDK-NIO源码分析 Linux JDK NIO 源码分析引言多路复用是一种模型,而实现这种模型有 select、poll 和 epoll,在 linux 下 NIO 的实现默认是 epoll 当一个 Socket 成功建立,客户端向服务端发数据,内核是最先知道这个 Socket 是可读的,但是业务层也想知道这个事情,那么怎么做呢? 借鉴观察者模式的思想,当这个事情发生了,内核就开始通知这个事情的监听者,也就是 epo 2026-04-21 源码分析 #源码分析 #IO模型
MybatisPlus配置联合主键 MybatisPlus配置联合主键背景是这样的,最近着手修改一个老项目,平时其他项目用的都是 JPA、倒不是不会用 Mybatis,只是这个项目是用来解析 xml 为对象并进行存储的,而且有的类字段特别多,觉得写 mapper 和 sql 太麻烦了,于是想到了 mybatis-plus(以下简称mp)。 本来以为很好解决的事情,没想到默认的 mp 不支持联合主键,于是查询了一些资料,有一个 myb 2026-04-21 #MybatisPlus #配置
云原生部署常见服务 云原生部署常见服务在开发过程中,经常需要自己进行一些小小的测试,亦或是简单的验证一些功能,简单功能使用公司的业务库还好,若是公司的业务库小众,或者测试的功能有危险情况,一般都希望能在隔离环境测试,虚拟机对于此场景太重了,用 Docker 轻量的启动一些服务非常方便。 该博客并非科普向,因此不再赘述 Docker、容器、Kubernetes 基础知识。 镜像拉取内网环境一般公司会自行搭建 Harbo 2026-04-20 云原生 #Docker #Kubernetes