Ajax Zhan's Blog
Welcome!This is Ajaxzhan.
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。
Go语言Map采用拉链法实现哈希表,底层通过hmap结构管理桶数组(buckets)及溢出桶。每个桶存储8组键值对,通过哈希值前8位(tophash)加速匹配,冲突时链接溢出桶。访问时,根据哈希值后B位定位桶,再匹配tophash和key完成查找。当装载因子超6.5或溢出桶过多时触发扩容:等量扩容整理稀疏数据,翻倍扩容增加桶数。扩容采用渐进式驱逐,写操作时增量迁移旧桶数据,避免性能抖动,确保O(1)时间复杂度的存取效率。
本文深入剖析Go语言string与切片的底层原理。string底层由`stringStruct`(含指针与长度)构成,长度表示字节数而非字符数,采用UTF-8编码,遍历依赖`runtime/utf8.go`自动解码为rune,切分需先转rune数组。切片底层为`slice`结构体(含指针、长度、容量),创建方式有字面量(编译期完成)与`make`(运行时调用`runtime.makeslice`),扩容规则为:长度<1024时容量翻倍,≥1024时增25%,且扩容并发不安全。掌握这些原理对优化内存、提升代码性能与稳定性至关重要。
Go语言(Golang)以简洁、快速、安全的设计哲学,在云计算、微服务等领域备受青睐。其核心特点包括:跨平台编译生成二进制文件,无虚拟化损失;自带runtime支持内存管理、垃圾回收及原生并发能力,简化开发。编译过程涵盖前端词法/句法/语义分析,后端生成SSA中间码(便于问题定位)及机器码;启动时通过runtime初始化协程调度,最终在协程中执行用户main函数,兼顾高效性与便捷性,成为现代开发的高效选择。
本文记录了AscendC学习笔记,涵盖从基础概念到算子开发的完整流程。核心内容包括:AI Core的达芬奇架构(物理结构含Cube/Vector/Scalar单元,逻辑结构为SIMD);AscendC编程对象GlobalTensor(外部存储)与LocalTensor(内部存储),以及Queue队列通信机制;Vector算子开发遵循分析、核函数定义、三阶段任务(CopyIn/Compute/CopyOut)的范式;Host侧实现涉及Tiling数据切分、Shape推导及算子注册。通过Add算子实例,展示了静态形状下多核并行(SPMD)与单核流水(Stage)的开发实践。
现代人常因忙碌陷入精神空虚,需反思行动与内在的关系。作者提出三点核心思悟:其一,承认“小我”的存在,避免否定或放任,通过统一“身口意”(所思、所言、所行)实现内在和谐;其二,以“如实”面对内在与外在,避免脱节导致的内耗,让行为真实反映生命需求;其三,以“觉知”修行,超越任性真实,在“事上炼”中保持生命鲜活,用天性而非习性生活。最终,回归生命源头,用状态而非观念活出真实与生机。
本文围绕《曾国藩领导力十二讲》中“重”字诀,从外在与内在两方面展开。“重”外在体现为举止稳重,需沉稳不慌乱、每遇大事有静气,避免浮躁失威严;内在则为深思熟虑,强调心、气、神、体的安定,尤其心定方能言行中肯。领导者需以“重”驭“轻”,在浮躁环境中保持战略定力,平衡张扬个性与稳重内涵。学习此书亦为反观领导思维、带领团队及提升个人领导力,以“重”为根基,涵养深沉厚重的领导品格。
虚拟内存基于局部性原理,通过多次性、对换性、虚拟性特征,解决了传统存储管理“一次性装入”“驻留性”导致的内存浪费问题。其实现以离散分配为基础,主要采用请求分页、请求分段等方式,依赖页表机制、缺页中断机构等硬件支持。页面置换算法(如LRU、CLOCK)旨在减少缺页率,分配策略包括固定/可变分配、全局/局部置换。页面调入分预调页和请求调页,需考虑对换区与文件区选择。频繁页面调度(抖动)需通过驻留集大于工作集缓解。内存映射文件则将文件映射至虚拟地址空间,由OS自动处理数据读写,支持进程共享。
内存管理核心功能包括空间分配回收、地址转换(逻辑到物理)、内存扩充(覆盖/交换技术)、共享与保护。进程内存映像含代码段(只读共享)、数据段、堆(高地址扩展)、栈(低地址扩展)等。链接分静态、装入时动态、运行时动态;装入分绝对、静态重定位(需一次性分配内存)、动态重定位(支持内存移动,需重定位寄存器)。连续分配有单一(单任务,利用率低)、固定分区(内部碎片)、动态分区(外部碎片,算法有首次/最佳/最坏适应)。非连续分配包括分页(页表映射,快表加速,两级页表解决页表过大)和分段(按逻辑段划分,二维地址),段页式结合两者优势。内存保护通过上下限寄存器或重定位+界地址寄存器实现。
本章系统讲解操作系统进程与线程管理核心内容:进程作为资源分配单位,具有动态性、并发性特征,包含运行、就绪、阻塞等状态及控制机制;线程作为CPU调度单位,分用户级与内核级实现,提升并发效率。CPU调度涵盖三级调度体系(作业/内存/进程调度),重点分析FCFS、SJF、优先级、RR及多级反馈队列算法。同步与互斥通过信号量机制解决,并深入生产者-消费者、读者-写者等经典同步问题。死锁部分阐述互斥、不剥夺、请求并持、循环等待四大条件,以及预防、避免(银行家算法)和检测策略。
本文概述了总线技术核心概念及8088最小组态应用。总线是微机数据传输通道,分地址(单向输出)、控制(双向)、数据(双向)三总线,功能是实现模块间数据传输。操作包括请求仲裁、寻址、传送、结束四阶段,同步方式分同步时序(固定时钟)和异步时序(应答)。周期关系为指令周期>总线周期>时钟周期。8088最小组态40引脚中,地址/数据复用(如AD0-AD7)、读写控制(RD*、WR*)、中断(INTR、INTA*)及总线请求(HOLD、HLDA)为关键信号,存储器与I/O读写时序差异体现在IO/M*电平,READY信号控制数据传输就绪。