- 博客(41)
- 收藏
- 关注
原创 Rust初步学习
Rust学习路线摘要(150字) 本文为Go开发者提供Rust系统学习指南。Rust以零成本抽象、内存安全和无畏并发著称,与Go相比采用所有权系统而非GC,性能接近C且无运行时开销。学习路径分为四个阶段:1-2周基础(环境搭建、所有权/借用核心概念);2-3周进阶(结构体、枚举、错误处理);2-3周特性与泛型(Trait、生命周期);最后2周并发编程(线程、async/await)。重点掌握Rust独特的所有权系统和借用检查机制,这是其内存安全的核心保障。推荐使用VS Code+rust-analyzer或
2026-03-14 08:47:38
529
原创 mysql索引
本文介绍了MySQL InnoDB引擎的索引基础知识。主要内容包括:索引的作用是提升查询性能,减少I/O和扫描行数;但也带来存储空间占用和维护成本。InnoDB采用B+Tree结构,包含聚簇索引(存储整行数据)和二级索引(存储索引列+主键值)。文章对比了不同数据结构特点,并提供了主键索引、唯一索引、普通索引和复合索引的创建示例SQL。最后强调索引设计需要权衡性能提升与维护成本。
2026-02-06 21:01:28
435
原创 Golang Map深入理解
Golang 中的 map 一直使用 hash 表作为底层实现。一个哈希表里面可以有多个哈希表节点,也即 bucket,而每个 bucket 就保存了 map 中的一个或一组键值对。重要版本变更:在 Go 1.24 版本中,map 数据结构经历了彻底的重构!
2026-01-08 20:54:39
897
原创 Golang Slice深度解析
本文深入解析了Go语言中Slice的实现原理。Slice是基于数组实现的动态数组结构,包含指向底层数组的指针、长度和容量三个字段。文章详细介绍了Slice的两种创建方式(make创建和数组创建)及其内存结构,重点分析了Slice的扩容机制,包括扩容容量计算规则(小容量翻倍、大容量渐进增长)和内存分配过程。最后总结了Slice的核心特性:指向底层数组、保存长度和容量信息、O(1)复杂度计算长度/容量、函数传递不拷贝数据、append可能触发扩容等。
2026-01-07 11:53:10
347
原创 Golang Channel 原理深度解析
Golang Channel 原理深度解析:Channel 是 Golang 提供的 goroutine 间通信机制,采用"通过通信共享内存"的设计理念。其核心数据结构 hchan 包含环形队列、等待队列和类型信息。创建时根据元素类型和缓冲区大小采用不同内存分配策略。写入数据时遵循特定优先级:优先直接传递数据给等待接收者,其次写入缓冲区,最后视情况阻塞或返回失败。整个过程通过互斥锁保护并发安全,体现了 Golang 高效并发编程的设计思想。
2026-01-07 09:17:47
636
原创 进程调度算法 笔记总结
本文介绍了五种常见的CPU进程调度算法。先来先服务(FCFS)算法简单但不利于短作业;短作业优先(SJF)算法提升吞吐量但可能导致长作业饿死;高响应比算法平衡了长短作业;时间片轮转算法简单实用但时间片设置影响性能;高优先级算法分为抢占式和非抢占式;多级反馈队列算法结合了优先级和时间片轮转的优点,能兼顾长短作业。文章还指出吞吐量是衡量系统性能的重要指标,通常用TPS表示。这些算法各有特点,适用于不同场景下的进程调度需求。
2025-12-20 10:52:25
204
原创 分库分表技术详解:从入门到实践
分库分表是解决数据库性能瓶颈的核心方案,通过将数据分散存储实现水平扩展。主要分为垂直拆分(按业务模块分离)和水平拆分(按数据行分散)。垂直拆分能解耦业务但跨库JOIN困难,水平拆分包含范围、哈希、一致性哈希等策略,各有适用场景。分库分表带来性能提升和扩展能力,但也面临分布式主键、跨库查询等挑战。雪花算法和号段模式是解决分布式ID的主流方案。合理选择分片策略能有效应对海量数据和高并发场景。
2025-11-21 22:12:04
1086
原创 Golang HTTP 框架 Hertz 实战
本文介绍如何使用 Golang HTTP 框架 Hertz 快速构建高性能微服务。Hertz 是字节跳动开源的一款 Go 语言 Web 框架,兼具高性能与易用性。文章从零开始演示了 Hertz 的基本使用方法,包括创建 HTTP 服务、路由注册、请求参数处理等核心功能。重点展示了 Hertz 的特色功能:通过代码生成工具 hz 自动构建项目骨架,以及强大的参数绑定与校验机制。通过简洁的示例代码,读者可以快速上手 Hertz 框架,将其应用到实际微服务开发中。Hertz 简洁的 API 设计和高性能特性,使其
2025-11-01 08:58:10
1054
5
原创 Mysql高级聚合技巧
本文深入解析了MySQL中的高级聚合技巧,帮助应对复杂的数据汇总需求。介绍了WITH ROLLUP实现层级小计,WITH CUBE生成多维汇总,以及灵活自定义分组的GROUPING SETS。通过条件聚合实现数据透视(PIVOT)功能,将行转列展示。重点讲解了窗口函数的强大功能,包括累计计算、分组排名和同比环比分析。这些技术为数据分析提供了更丰富的工具,从简单汇总到复杂计算都能高效完成,适用于不同版本的MySQL数据库。
2025-10-18 09:25:14
452
原创 SQLEXPLAIN 详解
SQL性能优化利器:EXPLAIN命令详解 EXPLAIN是分析SQL查询执行计划的关键命令,能帮助开发者定位性能瓶颈。主要关注三个核心指标:type列(避免ALL,追求range/ref)、key列(确保使用正确索引)和Extra列(警惕Using temporary/Using filesort)。通过将EXPLAIN置于SELECT等语句前,可获取查询执行顺序、索引使用情况、扫描行数等关键信息。实战中,应避免在索引列使用函数,合理创建复合索引,并重写低效查询。掌握EXPLAIN是提升SQL性能的关键技
2025-10-12 11:59:38
1154
原创 Redis中Lua脚本的应用场景分析
本文基于一个ADX(广告交换平台)管理系统API项目,深入分析其数据同步中Lua脚本的应用场景,并扩展探讨Redis中Lua脚本的各种实际应用。该项目是一个高并发的广告投放管理系统,需要处理大量的广告位配置、DSP对接、数据同步等任务。Redis中的Lua脚本为分布式系统提供了强大的原子操作能力。简化复杂逻辑:将多步Redis操作合并为单个原子操作提高系统性能:减少网络通信开销和锁竞争增强数据一致性:通过原子性操作避免并发问题提升系统可靠性:完善的错误处理和自动恢复机制。
2025-09-20 11:57:36
691
原创 牛客月赛120-E题
摘要 本文介绍了牛客月赛120-E题的解法。题目要求在给定正整数序列中,为每个元素找到一个满足特定条件的下标。解法采用排序后双循环遍历的方法,时间复杂度约为O(nlogV)。文章还深入探讨了除数函数的相关数学知识,包括大数因子数估算方法和Dirichlet除数问题,通过双曲配对法推导出除数函数前n项和的渐近公式D(n)≈nlog(n)。最后提供了C++实现代码,包含排序、遍历和结果输出等关键步骤。
2025-09-09 12:35:01
743
原创 MySQL高级功能:窗口函数
MySQL窗口函数是8.0版本引入的高级分析功能,它允许对数据集的特定"窗口"(由PARTITION BY定义的分区)进行计算而不合并行。核心语法包括窗口函数(如ROW_NUMBER、SUM等)和OVER子句,后者可指定分区、排序和窗口帧范围。常用函数分为四类:序号函数(ROW_NUMBER、RANK等)、分布函数(NTILE)、前后值函数(LAG/LEAD)以及聚合函数(SUM、AVG等)。使用时需注意版本兼容性和LAST_VALUE函数的默认窗口范围问题。窗口函数能实现复杂分析如累计
2025-09-07 13:35:45
891
原创 科普文章:广告技术平台的盈利模式全景
这篇文章系统解析了数字广告行业的盈利模式与技术指标。首先介绍了广告生态中各角色(广告主、DSP、ADX、SSP、媒体)的价值链关系与资金流向。然后详细拆解了8种核心盈利方式,包括佣金抽成、差价套利、效果计费、SaaS订阅等。最后提供了12个关键指标的解释与优化方法,如CTR、CPM、CPA等,涵盖从曝光到转化的全链路分析。全文为技术从业者提供了理解广告变现逻辑的实用框架。
2025-08-30 16:05:49
1411
原创 一文读懂 JWT:从原理到实践
JWT:无状态身份验证方案解析 JWT(JSON Web Token)是一种基于JSON的无状态令牌,用于安全传递用户身份信息。它由Header、Payload和Signature三部分组成,支持跨语言和跨平台使用,适用于微服务、单点登录等场景。相比传统Session,JWT无需服务端存储会话状态,但存在无法强制注销、令牌体积较大等缺点。 安全实践包括使用HTTPS传输、短期令牌有效期、敏感数据最小化存储等。代码示例展示了如何用Go生成和验证JWT,通过签名确保令牌的完整性和真实性。JWT在前后端分离、无C
2025-08-16 16:21:41
813
原创 GitHub第三方登录全解析:OAuth 2.0流程详解(适合初学者)
本文详细解析了GitHub第三方登录的OAuth 2.0流程,适合初学者理解。文章首先介绍了OAuth的作用,让用户无需创建新账号即可安全登录。核心流程包括:用户授权、令牌交换、获取用户信息和完成登录四个关键步骤。文中提供了配置参数详解和常见问题解答,强调client_secret的安全性。最后总结了OAuth 2.0的安全认证流程,并给出了安全实践建议,如使用HTTPS、最小权限原则等。通过清晰的流程图和示例代码,帮助开发者快速掌握GitHub第三方登录的实现方法。
2025-08-09 11:41:59
1575
原创 操作系统到 Go 运行时的内存管理演进与实现
本文深入分析了操作系统内存管理与Go运行时内存管理的实现原理与协同机制。操作系统通过虚拟内存抽象和分层页表实现进程隔离与地址转换,采用写时复制等优化技术提升性能。Go运行时构建了三级缓存架构(mcache、mcentral、mheap),通过精密的尺寸分级和位图管理实现高效内存分配。垃圾回收与内存分配深度协同,采用并发标记和分代清扫策略平衡性能。文章还提供了内存池、逃逸分析等优化技巧,并展示了系统层与运行时层的整体架构设计,揭示了现代内存管理系统的精妙实现与性能优化哲学。
2025-08-02 14:22:09
963
原创 Go中MAP底层原理分析
Go语言中map的底层实现采用哈希表结构,核心由hmap结构体和bmap桶组成。hmap包含桶数量、元素计数、哈希种子等字段,其中buckets指向哈希桶数组。每个bmap桶存储8个键值对,包含tophash数组(记录键哈希值高8位)和隐式的键值数组。查找时先用哈希低B位定位桶,再用高8位在桶内定位具体位置。map还支持溢出桶机制处理哈希冲突,并有特殊状态标记用于扩容迁移。该设计平衡了查找效率和内存利用率,是Go高性能map实现的关键。
2025-06-01 10:43:45
869
转载 OpenTelemetry 链路追踪介绍
OpenTelemetry合并了OpenTracing和OpenCensus项目,提供了一组API和库来标准化遥测数据的采集和传输。OpenTelemetry提供了一个安全,厂商中立的工具,这样就可以按照需要将数据发往不同的后端。推动在所有项目中使用一致的规范基于规范的,包含接口和实现的APIs不同语言的SDK(APIs的实现),如 Java, Python, Go, Erlang等Exporters:可以将数据发往一个选择的后端。
2025-05-28 17:53:36
142
原创 goweb核心学习
日期:{{ formatDate .CreateTime }}</p>-- 管道操作 --><p>结果:{{ 3 | add 5 }}
2025-04-05 16:11:59
735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅