自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 构建一个小孩哥(宠物)聊天机器人

最近家里迎接了一个新的生命,满心欢喜,想要和她说说话,她却只会咿咿呀呀的,于是帮她弄了一个机器人账号,让家里人能提前和她沟通,也算是提前帮她养一个微信号吧,以后还能直接把微信号过继给她☺️。部署简单:不同于其他语言,部署的时候需要依赖很多库,golang编译的二进制文件可直接运行。openwechat文本对话: 可以接收私聊/群聊消息,使用 OpenAI 的 gpt-4-turbo 生成回复内容,自动回复问题用户级对话上下文顺序保证: 保证每个用户对话的上下文顺序,回答按提问顺序回答并生成上下文。

2024-04-13 23:42:34 1067

原创 Go 并没有承诺 goroutine 只有 2KB:一次把栈真相讲清楚

本文通过实验和源码分析揭示了Go程序中goroutine栈内存占用的真相:虽然官方文档常提到goroutine初始栈为2KB,但实际运行时栈大小是动态调整的。实验显示,在高并发场景下,runtime会复用goroutine并基于历史栈使用情况动态计算起始栈大小(通常为4KB或更大),而非每次都新建2KB栈。这一机制通过GC周期内的栈使用统计实现优化,解释了为何生产环境中内存占用常高于理论预估。开发者应理解这一行为以避免内存规划偏差。

2025-12-25 16:42:54 358

原创 sync.Pool 真不是“对象池”:Go GC 性能优化的隐藏王牌

本文深入解析了Go语言中的sync.Pool机制。sync.Pool是Go运行时管理的对象缓存池,主要用于复用短生命周期对象,减少堆分配和GC压力。文章首先分析了堆分配和GC的代价,指出减少堆对象产生的重要性。接着详细介绍了sync.Pool的特性、基本用法和标准库中的真实案例。重点阐述了sync.Pool与GC周期的关系,说明对象最多存活两个GC周期。最后以bytes.Buffer为例,说明其适合sync.Pool的原因。sync.Pool通过极小的并发管理成本,显著降低了堆分配和GC开销,特别适合高并发

2025-12-18 18:11:51 816

原创 Go超高速关键词匹配库:Zero-Alloc、AC自动机实现(升级版)

Go超高速关键词匹配库Flashtext提供零内存分配、AC自动机实现,性能比正则表达式快500倍。核心特性包括:1)O(N)时间复杂度匹配,不受关键词数量影响;2)Zero-Alloc设计,匹配循环几乎不分配内存;3)EWMA自适应容量引擎,智能优化内存使用;4)AC自动机确保100%匹配完整性,不遗漏重叠词。适用于敏感词过滤、文本标签提取等高吞吐场景,提供简单API,开箱即用。GitHub地址:github.com/the-yex/flashtext

2025-12-09 09:33:19 823 1

原创 Go语言高性能关键词100%匹配:比Regex快500倍的AC自动机实现

摘要: Flashtext for Go是一个高性能关键词匹配库,采用AC自动机算法实现,比正则表达式快500倍(10,000关键词仅53ms)。核心优势: 极致性能:时间复杂度稳定(O(N)),与关键词数量无关 零内存分配:核心匹配过程无内存分配,GC压力极低 100%准确性:通过失败指针处理重叠词(如同时匹配"she"和"he") 适用于敏感词过滤、文本标签提取等场景,API简洁,支持大小写敏感/不敏感模式。GitHub地址:github.com/the-yex/

2025-12-08 16:06:58 806

原创 企业级的Gin模板项目

Gin Enterprise Template 是一个企业级 Gin 框架开发模板,旨在解决 Go 开发者在初始化新项目时重复造轮子的痛点。该模板提供开箱即用的 RBAC 权限系统、多种缓存支持(Redis/内存/LevelDB)、一键项目重命名、完整中间件生态和 Docker 一键部署等特性。通过标准化项目结构和最佳实践,开发者可以5分钟内启动新项目,将原本需要1周的初始化工作缩短到1小时。模板还包含智能降级机制、健康检查、事务工具和参数验证等生产级功能,帮助开发者专注于业务逻辑而非基础设施搭建。目前已开

2025-11-07 18:34:00 1065

原创 gopher必备神器,连 CTO 都在用的 Go 多版本神器,你还没装?

GVM是一款专为Go语言开发者设计的版本管理工具,能够高效管理多个Go版本和项目。它提供安装、切换、卸载Go版本的功能,支持创建指定版本的项目,并允许自定义配置。GVM采用Go语言和Cobra框架开发,无额外依赖,支持Mac和Linux系统。通过简洁的命令行操作,开发者可以轻松管理不同项目的Go版本需求,提升开发效率。该项目已开源,欢迎贡献和反馈。

2025-10-09 14:46:27 708

原创 为自媒体自动化加速,我做了辅助工具,效率飙升 10 倍!

为自动化自媒体加加速,markdown 转html 神器

2025-05-21 16:17:00 969

原创 一个百度、必应搜索引擎图片获取下载的工具包

ImageCapture 是一个用 Go 语言编写的库,旨在从百度和必应等搜索引擎捕获图片。它提供了一个接口,用于搜索和下载图片,并支持多种自定义选项。

2024-11-07 17:53:28 1176

原创 Golang GC 演进之路

Go V1.3: 普通标记清除,整个过程需要启动STW,效率极低;Go V1.5: 三色标记法,堆空间启动插入写屏障,栈空间不启动,全部扫描后,对栈空间进行re-scan需要STW),效率一般;Go V1.8: 三色标记法,混合写屏障,只在堆空间生效,栈空间不生效。整个过程几乎不需要STW,效率极高,大部分标记回收工作都是在程序运行时并行完成的,但仍需要在特定时刻暂停程序执行。具体来说:开始时的 STW:暂停所有 Goroutine,确保所有线程进入安全点,启动并发栈扫描,并开启写屏障。

2024-09-23 11:34:59 1224

原创 golang内存逃逸分析

如果一个函数作为值传递给另一个函数,或者被作为闭包使用,生命周期超出其原始作用域,则它会逃逸。golang 中的变量内存分配在堆上还是在栈上,是由编译器做逃逸分析之后决定的。这就导致一些逃逸分析的行为发生变化,类似上面那个代码的内存地址就会是连续的。依然和其他的不是连续的内存空间,依然具备逃逸行为。这样可以释放程序员关于内存的使用限制,更多的让程序员关注于程序功能逻辑本身。类型尝试通过赋值,会导致key 和 value 的赋值出现逃逸。数据类型,赋值的右侧会发生逃逸。类型尝试通过赋值,必定出现逃逸。

2024-09-13 09:32:54 1270

原创 记一次简单的切片创建引发的源码阅读

Go 语言中切片操作的一些微妙之处,提醒我们要小心处理切片的共享问题,尤其是在进行append操作时。牢记切片是一个三元素结构(指针、长度、容量),可以帮助我们更好地理解 Go 语言中切片的行为,从而避免类似的困惑。

2024-09-02 15:30:45 1105

原创 抢票app升级版(票霸)

之前写了一个猫眼脚本,很多朋友都私信获取,帮到了大家很高兴。闲暇无事写的一个抢票软件,旨在帮助更多的小白用户自动化抢购各种票务平台的票务,不用找黄牛,也不用担心不会用脚本。

2024-08-06 16:40:55 3214 94

原创 猫眼抢票脚本

猫眼抢票,autojs,安卓

2024-06-11 13:36:31 6293 13

原创 gofmt 字节对齐

golang 保存文件自动对struct field 进行字节对齐,优化内存

2024-04-19 18:12:48 943

原创 milvus 向量库日志级别引发的告警

动态调整Milvus日志级别

2023-07-05 11:08:16 1060 2

原创 高效关键词匹配库效果对比分析

ac自动机,关键词匹配库,大量关键词,长文本匹配

2023-06-17 12:36:31 344 1

转载 Go深度学习

Go语言深度学习———GC垃圾回收本文章有引用部分垃圾回收原理GC实现原理常用的垃圾回收算法前言前面说完几个常用的回收算法,脑子里还是懵的,所以特意去百度了很多知识博文,大概阐述一下自己的理解,有不对的地方,欢迎大家指出来。因为最近一年完全用的Go语言,java这些都好久没用了,所以本文暂时只对Go的Gc做了一些阐述,后续空闲了会再去看看java的jvm垃圾回收1.golang回收原理2.三色标记法ExampleExampleGolang垃圾回收的缺陷example:优化垃圾回收本文章有引用部分垃圾回收

2021-11-24 18:27:25 944

原创 win10安装postgresql出现there has bean an error

win10安装postgresql出现there has bean an errorwin10系统下安装postgresql出现如下问题:我安装的时候遇到过,找了网络上的一切办法,尝试过不使用官网的安装包,能安装成功,可是pgadmin打开会出现the application could not be contacted,最后都没有解决,后来我想到我的安装路径上有中文,会不会是这个导致的,首先我将我的“此电脑”名字改为"computer"然后computer右键属性看你这几项是否都是英文名,如

2020-07-03 13:35:25 8576 8

原创 关于用FileInputStream上传本地文件路径不正确问题

今天我做一个服务器上传文件的功能时,用FileInputStrean上传图片文件一直报错,内容如下各种方法我都试了,在网上也找了很多方法 还是不行,后来我尝试用File获取文件,引用File获取的文件到FileStream 就成功了解决...

2019-12-19 17:58:55 1356

ONVIF2.0协议(中文版)带目录.zip

完整的onvif中文文档

2021-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除