klusfq 最近的时间轴更新
klusfq

klusfq

V2EX 第 279579 号会员,加入于 2018-01-04 13:34:45 +08:00
klusfq 最近回复了
10 天前
回复了 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
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@Yc1992
首先,我很感谢你指出我 coding 的问题;
其次,这个代码我基本就是回忆+vi 裸写,快速过了面试官 case 就到此为止了;
再次,你如果愿意指教就别卖关子,不愿意也无所谓;
最后,发帖本来就是为了分享经验,社区交流本来就互通有无,请别以那种高高在上的姿态在那儿点评;

PS:边界 case 没处理到位这是 bug ,至少思路没错,不知道你的优越感打哪儿来的。
人生选择上,感情和事业都很重要。
但是既然选了,可以有遗憾但不要后悔。
我一直坚持“以人为本”的价值观念,所以两年前为了对象毅然决然从一线回二线,薪资砍半。。。
当时就想的很清楚,人生的每个抉择都是一场豪赌,就算最后没成那也是以后的事儿。
现在陷入了房贷压顶的窘境,所幸人还在。。。但是没啥后悔的
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@youyang
只能说没这个缘分,尽人事听天命吧。
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@emSaVya
没事儿,就当积攒经验了
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@xuzhzzz
他根本没问云原生这方面的问题,那还是我提到自己项目,聊了聊。
感觉他就只想看看你 go 有没有背八股
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@hahasong
我是按自己六年前大学的记忆理解写的
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@youyouzi
那是因为我考虑了空间复杂度。。。
你这开了这么多数组,排序数组稍微大点就爆栈好伐。。。
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@Yc1992
???
10 天前
回复了 klusfq 创建的主题 职场话题 某大厂 golang 一面凉经
@ldx78203199
主要是太久没写,加上大脑宕机了,确实可惜。。。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2753 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 09:34 · PVG 17:34 · LAX 02:34 · JFK 05:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.