首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
golang
订阅
zhou_zcy
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
[译] Go: 理解 Sync.Pool 的设计
ℹ️本文基于 Go 1.12 和 1.13 版本,并解释了这两个版本之间 sync/pool.go 的演变。 sync 包提供了一个强大且可复用的实例池,以减少 GC 压力。在使用该包之前,我们需要在使用池之前和之后对应用程序进行基准测试。这非常重要,因为如果不了解它内部的工作…
Golang 优化之路——空结构
我们一般只用 map 的键来保存数据,值是没有用的。所以来缓存集合数据会造成内存浪费。 空对象是个神奇的东西。它指的是没有字段的结构类型。 它牛逼的地方在于: 可以和普通结构一样操作 不占用空间 声明两个空对象,它们指向同一个地址 造成这个结果的原因是 Golang 的编译器会…
亿级流量缓存架构学习(一)
这个方案呢?基本上一线公司都在用的一个方案,我们公司当然达不到这个级别,但是也有用到这套解决方案的一部分东西,然后我看到这个系统,就学习一下,然后我自己打算就做一个记录吧,不一定说自己一步步跟着干出来,但是思想我肯定得学会,有道无术,术尚可求,有术无道,止于术。所以我们要学一样…
缓存系统设计精要
在计算机领域,缓存在程序设计过程中扮演着重要角色。浏览器的资源缓存策略是影响web网站性能的一个关键因素;mysql的Buffer Pool极大的提高了数据库的查询效率;redis作为被广泛应用的缓存数据库,提供了丰富的数据结构和缓存策略来满足开发者的需求。缓存在现代计算机系统…
解析器眼中的 Go 语言
代码其实就是按照约定格式编写的一堆字符串,工程师可以在脑内对语言的源代码进行编译并运行目标程序,这是因为经过训练的软件工程师能够对本来无意义的字符串进行分组和分析,按照约定的语法来理解源代码。既然工程师能够按照一定的方式理解和编译 Go 语言的源代码,那么我们如何模拟人理解源代码
分析go中slice的奇怪现象
可以看到,片段一和片段二中s1和s2输出不一致。 初看起来,感觉是fmt.Println(s1,"=====",s2)这句话导致了结果的不一样。 具体原因,且看下面分解。 对于片段二,结果都是b,这个似乎是因为append的时候,赋值给了一个新的变量,导致了s指向的底层数据虽然…
探索 Go 中接口的性能
在 Go 中使用接口(interface{})好像有性能问题,但是真的如此吗,或者我们有哪些可以提升的空间,来看一下 golang 的一个 issue。例子中跑了三个 benchmark,一个是接口调用,一个是直接调用,后面我又加了一个接口断言后调用。 常多。但是,当我们将类型…
深度解密Go语言之pprof
相信很多人都听过“雷神 3”关于性能优化的故事。在一个 3D 游戏引擎的源码里,John Carmack 将 1/sqrt(x) 这个函数的执行效率优化到了极致。 一般我们使用二分法,或者牛顿迭代法计算一个浮点数的平方根。但在这个函数里,作者使用了一个“魔数”,根本没有迭代,两…
[译]使用Go处理每分钟百万请求
这篇文章在medium上很火,作者以实际案例来分析,讲得很好。 我们经常听说使用Go的goroutine和channel很容易实现高并发,那是不是全部代码都放在goroutine中运行就可以实现高并发程序了呢?很显然并不是。这篇文章将教大家如何一步一步写出一个简单的, 高并发的…
如何写出优雅的 Golang 代码
写在前面代码规范辅助工具自动化最佳实践目录结构模块拆分显式与隐式面向接口小结单元测试可测试组织方式Mock方法断言小结总结ReferenceGo语言是一门简单、易学的编程语言,对于有编程背景的工程师来