V2EX klusfq
 klusfq 最近的时间轴更新
klusfq

klusfq

V2EX 第 279579 号会员,加入于 2018-01-04 13:34:45 +08:00
klusfq 最近回复了
@sunny352787
这个形容有点
@leaveeel 好的,那我去试试
@iamqiwei 就 vscode ,没用 JB
@xz410236056
功能满足需求即可。
而往往,是需求的演化才产生功能的迭代
@kekeabab 哈哈哈哈哈,真实
174 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@YakumoZi
好的,感谢提醒~
189 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@allencloud
在 Go 语言中编写 GC 友好的代码是优化程序性能的关键。以下是一些实践建议,旨在减少垃圾收集器的压力并提高程序的运行效率:
1. 对象池复用:对于频繁创建和销毁的小对象,可以使用对象池来复用对象,避免频繁的内存分配和回收。但需注意,对象池不适合所有场景,特别是对象较大或内存管理复杂时,可能会增加同步开销。
2. 避免短生命周期的大对象:尽量减少大对象的临时使用,因为它们会快速晋升到老生代,增加 GC 的负担。
3. 控制并发内存分配:在高并发场景下,过多的并发内存分配会增加 GC 的频率,考虑使用同步池等机制来集中管理内存分配。
4. 减少不必要的指针使用:无指针值的传递和存储可以减少 GC 的工作量,尤其是在数据结构中,如果不需要通过指针访问,尽量使用值类型。
5. 结构体字段布局优化:将指针字段放在结构体的前面,非指针字段放在后面,这样 GC 可以更快地完成扫描。
6. 利用逃逸分析减少分配:理解逃逸分析的工作原理,编写代码以避免不必要的堆分配。可以通过编译器标志(如-gcflags=-m )来查看哪些对象逃逸到了堆上,并尝试优化。
7. 字符串拼接避免使用+或 fmt.Sprintf:频繁的字符串拼接会导致大量临时字符串对象的生成,考虑使用 strings.Builder 或 bytes.Buffer 来累积字符串。
8. 合理设置 GC 参数:根据应用的具体情况调整 GC 的参数,如设置合适的堆增长因子、调整 GC 触发的阈值,但需谨慎,不当的调整可能适得其反。
9. 并发标记与清理:了解 Go 的 GC 机制,特别是从 Go 1.5 版本开始引入的三色标记法及其并发收集的改进,这有助于理解为何某些代码实践对 GC 友好。
10. 避免内存泄漏:确保所有资源在不再需要时被正确释放,避免长时间持有无用的对象引用,这直接关系到 GC 的效率。


来自 deepseek
189 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@Yc1992
首先,我很感谢你指出我 coding 的问题;
其次,这个代码我基本就是回忆+vi 裸写,快速过了面试官 case 就到此为止了;
再次,你如果愿意指教就别卖关子,不愿意也无所谓;
最后,发帖本来就是为了分享经验,社区交流本来就互通有无,请别以那种高高在上的姿态在那儿点评;

PS:边界 case 没处理到位这是 bug ,至少思路没错,不知道你的优越感打哪儿来的。
人生选择上,感情和事业都很重要。
但是既然选了,可以有遗憾但不要后悔。
我一直坚持“以人为本”的价值观念,所以两年前为了对象毅然决然从一线回二线,薪资砍半。。。
当时就想的很清楚,人生的每个抉择都是一场豪赌,就算最后没成那也是以后的事儿。
现在陷入了房贷压顶的窘境,所幸人还在。。。但是没啥后悔的
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2815 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 20ms UTC 13:01 PVG 21:01 LAX 06:01 JFK 09:01
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86