执行系统调用的时候,其关联的 P 可以被其他 M 抢占,保证了资源的利用率。内部,编码方式对开发者友好;
3.GMP 调度模型在多核 CPU 上有很好的扩展性,能充分发挥系统的计算能力;4.闭包的捕获列表会尽量捕获值,只有变量会被修改时捕获地址。最后,如果我再做一遍这个项目,我可能会从两个角度上再优化一下:1.要落实系统、全面的测试。尤其在进行重构的时候,我们遇到过的很多问题,都是因为测试不完善,或者测试环境不能模拟真实环境所致。很多本来是可以避免的,所以落实系统、全面的测试真的很有必要。2.避免过度设计。我们从一入行就被告知,写的程序要灵活易于扩展。长此以往之后,很多人实际上会做过度设计。反思我自己也有这种问题,代码中的各种设计模式,还有服务模块的拆分等等。不仅造成了较高的维护成本,还会在一定程度上影响性能。所以一定要结合实际需求进行设计。
最后送你一句话,知其所以然,磨刀不误砍柴工。
作者简介封幼林,小年糕 算法中台后端架构师现为小年糕公司推荐系统后端架构负责人,带队用 Go 重写了推荐系统的整个线上架构。此前任职于猎豹移动国内工具部门,负责国内新闻推荐系统相关服务的开发与演进。喜欢使用 C++ 和 Go 语言,对底层实现原理感兴趣。微信公众号“幼麟实验室”的作者(B 站和知乎同名账号),著有《深度探索 Go 语言》一书(即将出版)。
活动推荐2022 年 4 月 24-25 日,将在上海·宝华万豪酒店举办 ArchSummit 全球架构师峰会,议题更加聚焦纵深,更加丰富,内容涵盖业务场景、行业应用、一线实践。议题都是经过组委会和专题出品人层层筛选出来的,讲师也都是业界大公司的技术骨干,技术大拿。在讲师的演讲表现上,我们也会要求讲师提前远程试讲,打磨 PPT,把最好的内容和最棒的讲师呈现在听众面前。目前会议 7 折末期,想要购票的可以直接扫描下方二维码或者联系票务经理小倩:18514549229(同微信)