go语言边学边用
coder_vivid
鹅厂码农
展开
-
golang 实现类似c++析构函数解决cgo堆变量释放的问题
问题背景有个用于多协程场景的loader,调用的cgo实现会返回一个指针指向当前空间,使用全局指针来记录该指针的值。这里主要有这几个考量:1.复用loader的内容,因为每次重新加载开销比较大。2.更新后老空间如何释放(其他协程可能正在使用)。目前想到的就是实现一个类似c++析构函数的功能或者对这块旧内存做引用计数(cgo的空间没法被go的垃圾回收管理)。解决方案大...原创 2019-06-26 20:06:51 · 2768 阅读 · 0 评论 -
golang cpu性能图形分析工具
0 背景图形可以帮助我们直观的查看并定位问题,而cpu使用情况是一个比较重要的衡量指标。golang是属于一门注重性能的语言,自带了runtime/pprof来分析,这里做下简单记录。1 开始之前1.1 测试代码package mainimport ( "flag" "fmt" "os" "runtime/pprof")var cpuprofile = flag.Stri...原创 2019-09-05 16:57:48 · 1947 阅读 · 0 评论