-
Gin pprof性能分析
December 28, 2020
这篇文章介绍了如何使用Gin pprof进行Go语言的性能分析。首先,通过导入github.com/DeanThompson/ginpprof包并使用ginpprof.Wrapper(router)将其集成到gin框架中。然后,通过命令行工具go tool pprof获取和分析程序的性能数据。文章还提供了如何使用top命令查看当前内存使用情况,并建议定期使用此命令以检测是否存在内存持续增长的情况。最后,文章提供了两个参考链接,供读者深入学习。 …
-
Go grpc案例
December 28, 2020
这篇文章介绍了如何在Go中使用gRPC。首先,它解释了如何在.proto文件中定义服务,并使用protocol buffer编译器生成客户端和服务端代码。然后,它详细介绍了如何安装gRPC包,设置环境变量,以及如何创建gRPC服务器和客户端。最后,它提供了一个完整的gRPC示例代码,并提供了代码的GitHub链接。 …
-
Golang 协程异步请求
December 28, 2020
这篇文章介绍了如何在Go语言中使用协程进行异步请求。文章首先解释了协程是Go语言中的轻量级线程实现,由Go运行时管理。然后,通过一个示例展示了如何使用sync.WaitGroup来同步多个协程。示例中,我们创建了两个协程,每个协程都会调用getData()函数并将结果存储在rel映射中。最后,我们等待所有协程完成,然后打印rel映射的内容。运行结果显示,两个协程都成功地获取了数据并存储在rel映射中。 …
-
通过图片url获取图片尺寸大小
October 28, 2020
这篇文章介绍了如何通过Go语言获取图片URL的尺寸大小。首先,我们需要导入image/gif,image/jpeg,image/png这三个包,以便解码不同格式的图片。然后,我们使用http.Get方法获取图片,使用image.Decode解码图片,最后通过m.Bounds().Dx(),m.Bounds().Dy()和m.Bounds().Size()获取图片的宽度、高度和尺寸。 …
-
Golang excel导出
August 29, 2020
这篇文章介绍了如何使用Golang进行Excel文件的导出。它详细解释了如何使用excelize库创建一个新的Excel文件,并设置单元格的值。然后,它展示了如何将这个Excel文件作为一个下载响应发送给客户端。文章还提供了相关的Github和文档链接,供读者进一步学习和探索。 …
-
Golang 蓄水池抽样法
August 29, 2020
这篇文章介绍了如何在Go语言中实现蓄水池抽样法。蓄水池抽样法是一种等概率随机抽取的方法,适用于从大量数据中抽取样本。文章首先构建了一个可以放置m个元素的蓄水池,然后将前m个数依次放入。从第m+1个元素开始,以m/n的概率决定元素是否被替换到池子中。当遍历完所有元素后,就可以得出随机挑选的k个元素。该方法的时间复杂度为O(n)。 …
-
supervisor管理golang程序
August 29, 2020
最近在鼓捣golang守护进程的实现,无意发现了supervisor这个有意思的东西。supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来实现golang的守护进程,下面描述下具体实现。 …