
golang
文章平均质量分 83
未来的主流语言之一,潜力极大,代号:红领烬!
铁柱同学
博主从事后端开发已然八年,然入行越久越深感知识无限,学海无涯,非一时之功。故编写博客,用于自省记录,也遵循前辈们的教导,希望可以帮到更多的人。愿各位都能勇攀高峰,顺利成为大佬!奥利给!
展开
-
Golang编译导致的代码错觉
网上看到一段代码,来源是https://fanlv.fun/2021/12/18/golang-complier-optimize/,百思不得其解。本篇文章主要是分析以下代码,一方面是知其然知其所以然,另一方面也是避免以后掉进类似的深坑。越发明白大佬说的那句话,编程语言玩到最后玩的就是规范。虽然go的规范有点晦涩难懂,但我们可以通过遇到的问题去跟规范对照起来理解,也算是一种进步的方式吧。原创 2024-06-13 22:08:15 · 1334 阅读 · 2 评论 -
Golang os.Rename invalid cross-device link的原因
在执行go程序的时候,其中有一步是把/tmp目录下的一个文件移动到用户目录下,使用go的os.Rename函数来实现。经测试在mac上是可以正常跑的,但是在linux机器上却报错了。报原创 2024-05-23 08:45:14 · 1580 阅读 · 1 评论 -
Golang汇编之通过map地址找到value的值
通过读Go程序的汇编找到map的地址,然后通过map的内存布局,一步步找到实际value存储的值。整个过程中可以复习汇编知识以及map的存储结构等。原创 2024-04-21 20:12:33 · 3134 阅读 · 1 评论 -
Golang使用PGO优化程序性能
配置文件引导优化 (PGO),也称为反馈导向优化 (FDO),是一种编译器优化技术,它将应用程序的代表性运行中的信息(配置文件)反馈回编译器,以供下一次构建应用程序使用。它使用该信息做出更明智的优化决策。例如,编译器可能决定更积极地内联配置文件指示频繁调用的函数。从 Go 1.22 开始,一组代表性 Go 程序的基准测试表明,使用 PGO 进行构建可将性能提高约 2-14%。原创 2024-04-10 09:31:11 · 1742 阅读 · 0 评论 -
动态链接和静态链接及交叉编译的思考
跟同事聊天的时候,偶然聊到了要写一些C++的库供多个平台使用,也就是Android,IOS,服务端等。例如Android应用可以编译成.so使用,服务端也可以编译成.so使用,避免了一套逻辑多个平台都要写一遍的问题。原创 2024-01-26 20:32:28 · 952 阅读 · 0 评论 -
Golang使用sqlx报错max_prepared_stmt_count超过16382
线上的跑的go服务操作mysql突然报错导致服务不可用,原因是mysql的max_prepared_stmt_count超过16382。本文主要分析mysql的预处理语句以及sqlx中预处理语句的使用。原创 2023-09-15 20:19:40 · 1425 阅读 · 1 评论 -
golang静态编译及编译失败排查步骤
golang的静态编译介绍以及当编译失败提示:cannot find -lxxx: No such file or directory的时候,要如何排查以及解决问题。原创 2023-07-31 22:26:22 · 2838 阅读 · 1 评论 -
golang单元测试及mock总结
golang的单元测试实践总结,包括mock各种函数,http调用呢原创 2023-07-15 18:11:30 · 30249 阅读 · 5 评论 -
golang使用builder生成器模式组装sql语句
golang基于builder生成器模式组装sql,实现链式调用和输出。原创 2023-07-09 21:20:00 · 1283 阅读 · 0 评论 -
Golang的trace性能分析
本文主要介绍trace的使用以及需要关注的点。原创 2023-06-17 17:25:02 · 4092 阅读 · 0 评论 -
Golang的pprof性能分析
主要是介绍pprof的使用以及详细的性能优化案例。原创 2023-06-17 17:01:15 · 3735 阅读 · 0 评论 -
golang反向代理设置host不生效
ggolang设置header中host不生效的问题原创 2023-05-23 23:18:23 · 948 阅读 · 4 评论 -
go-restful接入prometheus笔记
go-restful接入prometheus,附demo原创 2023-04-15 18:32:19 · 1265 阅读 · 0 评论 -
grpc和thrift的概念及区别
rpc框架是微服务时代绕不过去的坎,作为连接各个微服务的“纽带”,也是我们后端从业人员必须掌握的。博主目前接触过thrift和grpc,两者可谓各有千秋,都值得我们学习。以下是早期的学习笔记,部分来源已经找不到出处了,记录一下。...原创 2022-08-13 23:54:12 · 4244 阅读 · 0 评论 -
golang中如何比较struct,slice,map是否相等以及几种对比方法的区别
对比两个struct或者map,slice是否相等是大家经常会有的需求,想必大家也都接触过很多对比的方式,比如等。这么多种对比方式,适用场景和优缺点都有哪些呢?为什么可以用==,有的却不可以呢?除了这三个,还有其他的方式可以判断相等吗?问题多多,且一起研究研究。Golang几种对象比较方法我们发现对比的两个结构是否相等,方式很多,效率也有高有低。选择合适自己需求的最重要。相对来说,cmp包是要更安全且可操作性更强一点,主要是看大家的喜好了。end。...原创 2022-07-29 21:36:38 · 5021 阅读 · 2 评论 -
golang封装mysql涉及到的包以及sqlx和gorm的区别
刚用golang的时候,看到mysql这些包之间都有什么区别呢?到底哪些才是我们封装mysql需要用到的关键包?原创 2022-07-25 22:18:00 · 3169 阅读 · 0 评论 -
go通过channel获取goroutine的处理结果
前几天写了篇文章,是通过sync.Map获取goroutine的返回结果然后做出处理,但是一直感觉方案一般,不是很好。毕竟channel才是钦定的太子,所以还是用channel好一些。golang控制goroutine数量以及获取处理结果。......原创 2022-07-24 20:23:49 · 949 阅读 · 0 评论 -
golang中slice切片使用的误区
golang中slice切片不同初始化方式之间的差异以及踩坑,看起简单却暗藏玄机系列。原创 2022-07-16 23:03:35 · 385 阅读 · 6 评论 -
golang控制goroutine数量以及获取处理结果
在goroutine中获取处理结果写入到sync.Map保证并发安全,并循环sync.Map获取处理结果。原创 2022-07-16 22:35:13 · 2253 阅读 · 2 评论 -
vscode打造golang开发环境以及golang的debug单元测试
一.前言 vscode使用的顺手了,真的很难再换到沉重的ide去。但是vscode的debug确实比不过老牌ide自带的,因此只能靠咱们自己去安装了。。二. 正文1.vscode的扩展(1)搜索扩展go,安装 (2)ctrl_cammand+P ,输入go:install,翻墙下载插件 (3)如果设置了go mod方式,那么vscode一次只能打开一个项目文件夹。不然会报错: could not i原创 2021-09-11 19:58:28 · 4585 阅读 · 2 评论 -
golang怎么给空结构体赋值
一、前言 最近没少使用golang,也没经过系统的学习,直接就上去开发了,遇到不少坑也学到不少东西,本次记录下给空结构体赋值的问题。二、案例1.结构体结构及错误type Test struct { Test1 int64 `gorm:"column:test1" json:"test1"` Test2 string `gorm:"column:test2" json:"test2"}var原创 2021-04-21 23:21:42 · 2062 阅读 · 6 评论 -
go语言学习第一弹:go和php的区别
一、前言 go语言也出来有一些年头了,按理说我们身为程序员,是应该身先士卒的去学习它,奈何博主之前总是不敢学,害怕php都掌握的不牢靠,学go语言相当于邯郸学步,最后把php都给忘了(博主刚入行一年的时候学习python,结果写程序的时候果断弄混了,哈哈哈)。 &nb...原创 2019-03-14 20:33:22 · 10707 阅读 · 0 评论