1 / 45
文档名称:

Go语言高并发实战.ppt

格式:ppt   大小:74KB   页数:45页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Go语言高并发实战.ppt

上传人:274030239 2021/8/27 文件大小:74 KB

下载得到文件列表

Go语言高并发实战.ppt

相关文档

文档介绍

文档介绍:Go 语言高并发实战
构建千万级在线的实时消息推送服务

1
关于我
张景埕,网名 diogin(/’daɪədrɪn/)
******@360
Go 语言追随者与实践者
新浪微博:diogin
2
摘要
一、为什么选用 Go
二、探究 Go 语言的实现细节
三、实时消息推送服务的特点
四、系统架构及组件细节
五、数据、经验和教训
3
一、为什么选用 Go
4
1. 高并发
一个 Go 进程可以轻易支撑几十万上百万并发运行的 Go 例程(只要你内存足够大)
O(1) 的调度
5KiB/goroutine 的内存开销
net 包:pollServer (epoll/kqueue/iocp) 支持大量并发连接 fd 的事件通知,同时还支持多核并行 (目前为 8 核)
select/channel 提供卓越的例程间通信能力
5
2. 高性能
编译为本地机器码
静态链接 (CGO_ENABLED=0)
轻量级的 runtime 实现
热点代码可以直接编写 C 或 ASM,同样静态链接进目标文件
6
3. 垃圾收集
不想为内存泄露问题焦头烂额
朴素的实现:停顿式、标记 & 清除
还有很大的提升空间
资源泄露还得自己解决
7
4. 低成本
学习成本低:源自 C 系,大量的 C 系程序员可以很快上手(这很重要)
运维成本低:不需要安装各种让人头疼的依赖,不需要搭建各种运行环境,部署非常方便
8
5. 够用的标准库
net
encoding/gob
strings, bytes, errors, strconv
regexp
os, time
syscall
sync
......
9
6. 高移植性
多种操作系统:Linux, FreeBSD, Darwin, NetBSD, OpenBSD, Windows
多种体系结构:386, amd64, arm(v5,v6,v7)
多种目标文件格式:elf/pe/macho
10