使用 pprof 对 Go 程序进行分析优化
前言 在生产环境中,偶尔会发生 Go 程序 CPU 暴增的现象,排除某时段并发大的场景外,通过监控面板看不到程序是因为什么原因导致的,Go 语言原生就提供了工具 pprof,Google 对于 pprof 的解释就是一个用于可视化和分析数据的工具。 通过使用 Go pprof 可以对程序的 CPU性能、内存占用、Gor…
前言 在生产环境中,偶尔会发生 Go 程序 CPU 暴增的现象,排除某时段并发大的场景外,通过监控面板看不到程序是因为什么原因导致的,Go 语言原生就提供了工具 pprof,Google 对于 pprof 的解释就是一个用于可视化和分析数据的工具。 通过使用 Go pprof 可以对程序的 CPU性能、内存占用、Gor…
常规操作 git push origin test 推送本地分支到远程仓库 git rm -r --cached 文件/文件夹名字 取消文件被版本控制 git reflog 获取执行过的命令 git log --graph 查看分支合并图 git merge --no-ff -m '合并描述' 分支名 不使用Fast …
简介 PWA是Progressive Web App的简称,是谷歌提出的新型Web技术,并由W3C及谷歌来推广这项技术,其主要目的是为了提升用户对网站原生使用体验,同时又能节省对网站的开启速度。 在我们国内,类似于PWA的技术可以简单地理解为微信主导的小程序,不过小程序的使用需要进行微信小程序前端重构开发,而渐进式We…
在关系型数据库中,悲观锁与乐观锁是解决资源并发场景的解决方案,接下来将详细讲解一下这两个并发解决方案的实际使用及优缺点。 首先定义一下数据库,做一个最简单的库存表,如下设计: 1 2 3 4 5 6 CREATE TABLE `order_stock` ( `id` int(11) NOT NULL AUTO_INCR…
Gource 是一款版本控制可视化的工具,使用这个工具可以将自己的 Git 提交的代码包括对 Mercurial,Bazaar 和 SVN 的内置日志生成可视化支持。Gource 还可以解析由多个第三方工具为 CVS 存储库生成的日志。 提交的代码按照时间轴的顺序动态显示出来,可以使你的工作过程以动画的形式显现,并且 …
Tree 命令以树状形状列出目录的内容的一个工具,你时常在 Github 中常看到一些开源项目会将自己的项目目录展现出来,这篇文章的背景图就是展现的开源项目 Laravel 中 app 目录的树状图,接下来介绍一下基本使用语法。 基本语法 1 tree [-aACdDfFgilnNpqstux][-I <范本样式>][…
近期学习了 Go 语言,跟着七米在学习,学习过程中了解到了 API 的一个设计规范,也就是本文要讲的 Restful API 设计模式,现在互联网处在前后端分离的阶段,API 的书写及规范化是非常重要的,针对于 API 中 Restful API 中设计比较规范的是 Github API,可以直接访问他们的 https…
事情的起因是这样的,前几日在看 idealclover 大佬的博客,不经意间看到了他的豆瓣观影记录,他博客中关于豆瓣观影记录是实时同步的,很好奇是如何实现的,经过查看,他是爬取的豆瓣观影界面来实现的,其实关于豆瓣观影记录,网上也有很多的教程,恰巧自己所学的 Go 语言也可以做简单的爬虫实现其效果,于是开始上手造轮子了,…
今年,时间依旧飞快流逝,转眼间,自己已经毕业了小2年了,渐渐的自己开始习惯了北漂的生活,一个人的北京,自由与孤独同在。也体会到了离家远的遗憾,远的连奶奶最后一面也没有见到,第一次感受到了亲人阴阳两隔的无奈与悲哀。疫情 😷 在全球范围内还在持续,国内偶尔也零星的出现,但愿 22 年疫情结束,全世界人们都可以回归到疫情之前…
近期,我们对 APP 网关 Gateway 做了升级,由于项目创建时间过早(6年前的项目),那时候还没有好的包管理工具,使用的是最原始的 Go Path 来进行项目的依赖管理,历史包袱比较重,项目中很多的第三方引用都是直接将代码拷贝到项目目录下,升级与维护起来特别麻烦,升级之后就是现在官方主推的是 Go module …
永远相信美好的事情即将发生 欢迎大家联系我,让我为你内推吧,小米众多岗位等你来选,不清楚岗位信息的可以联系我(关注微信公众号「Debug客栈」直接发送消息即可),我会给你发对应的内推部门及岗位,也可以联系我查询内推情况,感觉 OK,你就来吧! 关注微信公众号,第一时间获取最新内容,让我们一起变得更强!Debug客栈:订…
前言 在团队开发中,使用 Git 作为版本开发工具,可以便捷地协同多人管理并行开发,但是由于自己或者其他人代码提交污染了远程分支,就需要对远程代码进行恢复操作,Git 提供了 reset 和 revert 两种命令来进行恢复操作,这两种操作效果是截然不同的,不太清楚这个原理的同学需要了解一下,以免在实际的开发过程中翻车…
今天使用数字人民币兑换了建党100周年纪念币,过程比较坎坷,不过最终还是兑换成功了。 预约纪念币成功后,今天中秋假期,正好去兑换纪念币,小雨转中雨 ☁️,作为多年没有使用纸质人民币的我实在是没有钱来兑换纪念币,之后搜索了一下附近可以兑换人民币的营业厅,都在千米之外,算了…… 突然想到前两天美团有一个数字人民币的活动,下…
Feed 订阅 欢迎订阅下面的 Feed,您可以及时跟踪我的更新: 1 https://blog.debuginn.com/index.xml 公众号订阅 当然,您不习惯上方方式订阅,您可以选择你经常阅读的社区进行订阅,目前仅支持 知乎专栏、腾讯云+社区(Sync)。 视频专区 我还不时制作视频上传至 哔哩哔哩 和 Y…
译文原地址:Should methods be declared on T or *T - David 在 Go 中,对于任何的类型 T,都存在一个类型 *T,他是一个表达式的结果,该表达式接收的是类型 T ,例如: 1 2 3 type T struct { a int; b bool } var t T // t'…
我的阅读清单 2025 状态 书籍 类别 笔记 推荐指数 ✅ 《高效能人士的七个习惯》 效率 对于职场提高效率非常有帮助,第二遍看 🌟🌟🌟🌟🌟 ✅ 《纳瓦尔宝典》 财经与幸福 资本的原始积累与幸福密集的分享,还是非常有帮助的 🌟🌟🌟🌟🌟 ✅ 《挪威的森林》 小说 一个关于人性的深度思考,也可以作为一种生活方式 🌟🌟🌟🌟…
距离最后一篇博文 《Go 语言开发设计指北》发布已经过去一个多月的时间了,在这一段的时间里,在看了大量的书籍?,在工作上安排的工作都比较得心应手,时间还算比较充裕,但是懒惰心里没有丝毫退去 ?,这样是不行的,很容易让自己的思维和学习能力下降。 先来谈谈近期阅读的一些文章吧,《高性能 MySQL》这一本书相信是计算机从业…
Go 语言是一种强类型、编译型的语言,在开发过程中,代码规范是尤为重要的,一个小小的失误可能会带来严重的事故,拥有一个良好的 Go 语言开发习惯是尤为重要的,遵守开发规范便于维护、便于阅读理解和增加系统的健壮性。 以下是我们项目组开发规范加上自己开发遇到的问题及补充,希望对你有所帮助: 注:我们将以下约束分为三个等级,…
2021 年的一月份马上就过去了,在这一个月中,并没有新鲜出炉的博文,恰恰相反的是我这一个月以来,在思考,自己的博客怎么输出高质量有水平的文章,正如一首优美的旋律,怎么听都可以让人回味无穷,每一遍都有自己的收获。 关于提升自己博客文章的水平,这个月思考了很多的方向,也阅读了不少人对于博客的看法和理解,最终对自己博客总结…
今年,最大的感受就是时间过的太快了,一切都是那么的来不及 …… 2020 年,疫情、毕业、工作,学生时代的 END,社会人时代的 START …… 2021 年,希望一切都在慢慢变好,新的开始、新的未来!!! 每一次总结都是新的开始的起点,那么,接下来就开始吧~ 网站数据 今年是小站运行的第 4 年,感谢大家的支持与访…