5.cgo 原理解析及优化实践线程上执行 Go 调 C ① “释放”P 并没有立即执行,需要等 sysmon 来 retake 属于优化;通常 C 很快返回 ② 获取不到 P,也会将 G 放入全局 G 队列 CPU 优化 第四部分 发现过程 needm:获取 extra M,确保 go 需要的信号没有被屏蔽 dropm:释放 extra M,恢复信号 8 个系统调用 信号处理机制 ① 向 OS 注册 sighandler pthread_key_create 执行成功才跳过 ① C 申明变量 & 赋值 ② Go 申明 import ③ ASM 中可以直接使用 revert 三次 3 月 25 日,第一次合入 5 月 18 日,第四次合入 https://go-review.googlesource.com/c/go/+/495855 ① g0 的栈空间(lo,hi)是动态指定的 ② 原来是当前 C 栈顶,增长 32k0 码力 | 45 页 | 5.74 MB | 1 年前3
Go Web编程目前NOSQL已经成为Web开发的一个潮流,很多应用采用了NOSQL作为数据库,而不是以前的缓存,5.6小节将介绍 MongoDB和Redis两种NOSQL数据库。 目录 目录 links links 目录 上一章: 第四章总结 下一节: database/sql接口 115 5.1 database/sql接口 5.1 database/sql接口 Go与PHP不同的地方是Go没有官方提供数据库驱动,而是 ,实现了session从创建到销毁的整个过程。然后定义了Provider的接 口,使得可以支持各种后端的session存储,然后我们在第三小节里面介绍了如何使用内存存储来实现session的管 理。第四小节我们讲解了session劫持的过程,以及我们如何有效的来防止session劫持。通过这一章的讲解,希望能 够让读者了解整个sesison的执行原理以及如何实现,而且是如何更加安全的使用session。 t,通过它,服务器可以实现主动的push消息,以简化 以前ajax轮询的模式。第三小节介绍了REST编写模式,这种模式特别适合来开发网络应用API,目前移动应用的快速 发展,我觉得将来会是一个潮流。第四小节介绍了Go实现的RPC相关知识,对于上面四种开发方式,Go都已经提供了 良好的支持,net包及其子包,是所有涉及到网络编程的工具的所在地。如果你想更加深入的了解相关实现细节,可以 尝试阅读这个包下面的源码。0 码力 | 295 页 | 5.91 MB | 1 年前3
Go语言 - 一些简单的读书分享怎么样读书 第三部分 怎么样读书 • 结构化笔记 • 费曼学习法 这个是我在读架构整洁 之道的时候做的笔记 这个是我在读 righting software 时写的笔记 应该读哪些书 第四部分 基本的观点 • 技术类的书都是有时效性的 • ⼗年前的⾏业权威可能早就不写代码了,别找他们来问该看 什么书 • 优先读对⼯作(也可以是找⼯作。。)帮助⼤的书 常⻅的找书⽅式 • 通过0 码力 | 16 页 | 9.09 MB | 1 年前3
如何用GO支撑海外电商的快速发展-吕梦楼uid 一致性ha sh 放号系统机器的hostn a m e h2 m queue_ hd get_ {{m id d le_ hostn a m e}} 场景落地 02. 秒杀 总结 第四部分 总结0 码力 | 33 页 | 3.80 MB | 1 年前3
Go读书会第二期中文图书 Go 外文图书 读书方法 精读 • 选择高质量图书 • 脑图 + 细节摘录 + 行动清单(输出) 泛读 • 闲书 ( 不烧脑 ) • 碎片化(快读) + 听书 小结 第四部分 小结 • 写书三要素 • Go 精进之路导读:思维先行,践行哲学,遵循惯例,认清本 质,理解原理 • 读书:选高质量图书精读 ( 脑图 + 细节摘录 + 行动清单) 谢谢0 码力 | 26 页 | 4.55 MB | 1 年前3
1.每秒百万数据点 Go 应用监控系统演进扩展性强,所有组件支持水平扩容 2023 年底架构 VictoriaMetrics 架构 VMStorage VMSelect VMInsert Why VictoriaMetrics so good? 第四部分 极致的设计与优化 ● 根据容器可用的 CPU 数量计算协程数量 ● 区分 IO 协程和计算协程,同时提供了协程优先级策略 ● 使用 ZSTD 压缩传输内容,降低磁盘性能要求 ● 根据可用物理内存限制对象的总量,避免0 码力 | 42 页 | 2.32 MB | 1 年前3
1.5 Improving Go Backend Developer Experience in GrabProduction Deployment Slow and steady wins the race! 03. Production Deployment Post-Deployment 第四部分 Helping engineers post-deployment... 04. What can we do to help? When things are broken…. You0 码力 | 47 页 | 8.58 MB | 1 年前3
2.2.3 Go语言的抢占式调度新版本 wait for scan complete scanstack resumeG 抢占的触发时机-后台监控 sysmon retake preemptone ⽼版本的抢占实现 第四部分 preemptone 函数只做标记⼯作 preemptone 本质是将正在 P 上执⾏的 M 的 curg 的标志位置为 true 这之后的流程需要正在运⾏的 goroutine 来配合0 码力 | 44 页 | 7.43 MB | 1 年前3
2.2.1 深入Go Modulepath • 修改代码引用,加上v3,v4,...后缀 • go mod tidy • 发布新版本: git tag v3.0.0 && git push origin v3.0.0 血泪史 第四部分 循环依赖 L 1.0.0 L 1.1.0 M 1.0.0 etcd --> prometheous-client --> prometheus-common --> go-kit -->etcd0 码力 | 46 页 | 3.85 MB | 1 年前3
5 How to integrate Graph mode into RDBMS smoothly TAG(people); DEMO Bob Max Jon ID: 1 ID: 2 ID: 3 2010-01-01 2012-02-02 Jim ID: 4 2020-12-12 特性 第四部分 一些主要特性 01. 副标题 ✓ DDL ✓ Create tag ✓ Create edge ✓ Secondary index ✓ DML ✓ Insert ✓ Update0 码力 | 26 页 | 1.14 MB | 1 年前3
共 24 条
- 1
- 2
- 3













