![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
文章平均质量分 83
尖笔尖
超人不会飞
展开
-
go 学习, 模拟写个简单的 du 程序
linux的du命令用于显示目录或文件的大小,它提供诸多选项功能,本程序旨在学习并发控制。原创 2022-12-11 12:56:25 · 406 阅读 · 0 评论 -
golang 面试常问(简短变量声明、字符串、切片、defer)
简短变量声明,nil slice 和 empty slice,浅拷贝和深拷贝,切片扩容,浅拷贝引发的内存泄漏原创 2022-11-22 23:37:34 · 248 阅读 · 0 评论 -
golang 垃圾回收、三色标记法、写屏障
垃圾回收简称 GC,就是对程序中不再使用的内存资源进行自动回收释放的操作。常见的垃圾回收算法引用计数:每个对象维护一个 引用计数,当对象被创建或被其他对象引用时,计数 +1;如果引用该对象的对象被销毁时,计数 -1 ;当计数为 0 时,回收该对象。优点:对象可以很快被回收,不会出现内存耗尽或到达阀值才回收。 缺点:不能很好的处理循环引用;需要实时维护计数引用。标记-清除:从根变量开始遍历所有引用的对象,引用的对象会被标记,没有被标记的则进行回收。优点:解决了引用计数的缺点; 缺点:需要原创 2022-04-06 23:25:59 · 2040 阅读 · 4 评论 -
golang unsafe.Sizeof 函数
unsafe.Sizeof 函数// Sizeof takes an expression x of any type and returns the size in bytes// of a hypothetical variable v as if v was declared via var v = x.// The size does not include any memory possibly referenced by x.// For instance, if x is a sl原创 2022-03-25 22:45:52 · 1676 阅读 · 0 评论 -
golang 原生 tcp setsocketopt
最近新项目上线,自己写了一个测试程序来做压测。测试刚开始使用小并发的请求没有啥问题,但是加大并发后,发现每次请求到1.6 万笔左右的时候就连接不上服务器了,而监控服务器这边显示 cpu、内存都很正常,所以猜测是客户端这边某些资源到达了瓶颈。再次发起测试,同时在客户端这边通过 netstat -anpt 命令 查看 tcp网络状态,发现存在大量 time_wait 状态 的连接。问题找到了,因为压测程序这边使用 tcp 短连接,每完成一次请求后就 主动断开 了连接。我们知道正常调用 close 会原创 2022-03-12 20:45:35 · 4560 阅读 · 1 评论