All Posts

在blog中内嵌在线PPT

 有时我们会做一些分享,分享之后可以把 PPT 脱敏之后放在博客上面, 可以使用 office online 直接内嵌 PPT。巨硬大法好

记一次net http内存泄漏

使用 gin 作为文件下载服务器,内存占用突然从几十 M 到了 10G 以上,导致服务被 kill 重启 复现 server.go func main() { r := gin.Default() r.GET("/download", func(context *gin.Context) { f, err := os.Open("./win7.iso") log.Println(err) defer f.Close() info, _ := f.Stat() b := make([]byte, info.Size()) f.Read(b) context.Data(200, "application/octet-stream", b) })

pprof go性能分析工具

PPT 分享(可能需要 FQ 方能访问,需要可以访问, onedrive.live.com)

使用TravisCI自动部署Blog

之前博客的更新一直都是在本地运行hugo然后手动push到github仓库,虽然写了一个小脚本,但是本地还是多了一个public文件夹,最近

使用Goland调试Go程序

在上一篇Blog当中发现了一个十分边缘的GORM的bug,由于不熟悉工具,bug的调试过程还是比较麻烦,这一篇讲一讲如何使用Goland强大的debug功能调试Go程序

一个十分边缘的gorm的bug

[toc] 复现代码 这个代码的触发条件比较严苛,首先必须要保证gorm执行的一行必须为updates语句,并且在updates(struct),并且传入的这个struct必须要包含一个直接或者间接关联的一个多态表,这些条件缺一不可

Httprouter介绍及源码阅读

在上一篇文章当中阅读了Go语言的一个高性能的Web框架Gin,Web框架当中最重要的功能之一是路由,Gin的路由就是由httprouter这

Gin源码阅读 从0.1开始

最近打算开始学习一下Gin的源代码,现在Gin已经是一个十分成熟的框架了,代码量也不少,阅读起来还是有一定的难度,所以我打算从0.1版本开始

纯技术人员和投资者的一些区别

以下都是流水账,感慨一下… 今天有幸参加了一位师兄的校友聚会,也很巧合,和很多大佬一起吃了一个饭,听大佬们聊天受益颇多。 今天有一

2018年的一些小目标

时间过得很快,从一个学生到一个社会人只需要那么一瞬间,一个来不及反应的瞬间。虽然之前经历过大量的实习工作,也不是第一次只身一人千里迢迢来到这