gilang八股文

本文持续更新 堆、栈 它们是程序运行时,两块用途完全不同的内存区域。 栈(Stack)—— 函数的临时小抽屉 每个函数运行时,都会在栈上占一小块空间; 函数里的局部变量、参数默认都往栈上放; 函数一结束,栈空间自动清空,变量直接销毁; 速度极快,几乎零开销; 不需要 GC 垃圾回收。 特点:自动申请、自动释放,快、小、临时。 堆(Heap)—— 全局公共大仓库 一块共享的大内存; 放那些函数结束后还需要活着的变量; 不会自动销毁,靠 Go 的 GC 来回收; 分配慢、寻址慢、有 GC 开销。 特点:手动 / 编译器决定分配,GC 回收,慢、大、持久。 在栈还是堆 直接用 Go 自带的逃逸分析命令看: 1go build -gcflags="-m" main.go 输出里会出现两种关键行: does not escape → 变量在 栈 上 escapes to heap → 变量逃逸到 堆 上 slice 数据结构 slice是引用类型,共享内存地址 切片扩容 只有append才会触发扩容!手动make只是新建切片。 扩容会彻底替换底层数组: 计算新的容量(按增长规则) 在堆上新建一个更大的底层数组 把旧数组的所有数据完整拷贝到新数组 切片指针指向新数组,更新 len/cap 旧数组如果没有其他引用,会被 GC 自动回收 容量增长规则(Go 1.18+ 最新版) 小切片快速扩容,大切片平缓扩容,避免内存浪费 ...

April 22, 2026 · 5 min · 1000 words · Jamaisvu

Hugo API:快速发布你的hugo文章!

这是博主开源到github的另一个项目,此处贴的是使用文档。如果是跟我一样使用hugo建站并且苦于如何发布的小伙伴们,我强力推荐这个api,你会用上的!! ✿✿✿来支持一波吧✿✿✿ 👇👇👇 grayfalcon666/hugo_api: Quickly publish posts for your Hugo blog! preview: 一个用 Go 编写的轻量级 API 服务,支持通过 表单提交(直接复制 Markdown)快速创建 Hugo 静态博客文章,自动生成 Front Matter 并触发 Hugo 构建,无需手动操作文件或执行命令。 🌟 核心功能 发送文章与动态: /api/hugo/create-post /api/hugo/create-moment 外置config文件: 可自定义文章发布路径、密钥、api监听端口号 自动处理: 生成 Hugo 标准 Front Matter(标题、时间、标签、分类等) 自动触发 Hugo 构建,发布后立即生效 🚀 快速开始 1. 克隆仓库到本地 2. 配置 config.json 在项目根目录创建 config.json 文件,按实际环境填写配置: 1{ 2 "api_key": "your-strong-secret-key", 3 "hugo_content_path": "/home/user/blog/content/posts", 4 "hugo_moment_path": "/home/user/blog/content/moments", 5 "hugo_project_path": "/home/user/blog", 6 "hugo_exec_path": "/usr/local/bin/hugo", 7 "listen_addr": ":8080" 8} 3. 编译与启动 1# 编译(生成可执行文件) 2go build -o hugo-api hugo-api.go 3 4# 启动服务 5./hugo-api 后台运行 linux 写一个系统服务即可,以下为示例: ...

October 6, 2025 · 2 min · 278 words · Jamaisvu