摘要: atomic.AddInt64 介绍 原理 源码 看不到源码解释个勾八原理 源码里只有函数doc, 但是没有函数实现, 但是有一段注释 // AddInt64 atomically adds delta to *addr and returns the new value. // Consider 阅读全文
posted @ 2024-03-29 22:59 pDJJq 阅读(36) 评论(0) 推荐(0) 编辑
摘要: golang: 分析查看汇编代码 查看可执行文件 可视化 注意: linux用户需要额外运行go install --tags nowayland loov.dev/lensm@main​ 下载 lensm: go install loov.dev/lensm@main 运行lensm​: lens 阅读全文
posted @ 2024-03-29 22:58 pDJJq 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 代码优化 多线程优化 尽量使用顺序读写 因为分支预测的关系, 顺序读写通常能够带来更好的性能. 共享变量 将只读变量和读写变量分离 有可能因为缓存行的原因导致读写变量的更新影响到读变量, 进而影响了运行速度 提升数据的局部性, 将一起使用的读写变量分组到一个结构中 缓存行Padding (谨慎使用) 阅读全文
posted @ 2024-03-29 20:00 pDJJq 阅读(9) 评论(0) 推荐(0) 编辑
摘要: NUMA架构是一种多处理器系统内存设计,提供本地内存访问和远程内存访问,用于提高处理器访问内存的速度。在服务器、虚拟化环境、HPC和多线程应用中广泛应用。优化方法包括进程绑定、缓冲池配置和开启NUMA优化功能。 阅读全文
posted @ 2024-03-29 19:58 pDJJq 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 虚拟内存使用基址加界限、基于段和基于页等不同方法进行地址转换。基址加界限简单但存在内存浪费,碎片问题;基于段实现内存保护和共享,但存在内部碎片和大小调整问题;基于页是现代操作系统常用的技术,通过页表完成地址映射,避免了段的缺点。 阅读全文
posted @ 2024-03-29 19:57 pDJJq 阅读(65) 评论(0) 推荐(0) 编辑
摘要: CPU Cache 架构 每个程序员都应该了解的内存知识.pdf - p22 - 每个程序员都应该了解的内存知识-P22-20240328112647 ​​ 每个程序员都应该了解的内存知识.pdf - p23 - 每个程序员都应该了解的内存知识-P23-20240328112807 ​​ 每个程序员 阅读全文
posted @ 2024-03-29 19:56 pDJJq 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 南桥&北桥&内存 结构 每个程序员都应该了解的内存知识.pdf - p5 - 每个程序员都应该了解的内存知识-P5-20240327103419 ​​ 功能 每个程序员都应该了解的内存知识.pdf - p5 - 每个程序员都应该了解的内存知识-P5-20240327104347 ​​ 北桥 主要是连 阅读全文
posted @ 2024-03-29 19:55 pDJJq 阅读(65) 评论(0) 推荐(0) 编辑