AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Golang 内存管理探微——如何高效使用 Golang 内存以及腾讯云实战

  • 2019-08-17
  • 本文字数:836 字

    阅读完需:约 3 分钟

Golang 内存管理探微——如何高效使用 Golang 内存以及腾讯云实战

QCon广州2019大会上,杨晖讲师做了《Golang 内存管理探微——如何高效使用 Golang 内存以及腾讯云实战》主题演讲,主要内容如下。


演讲简介


Go 语言从 2009 发布以来,到今年正好十周年。Go 语言具备天生并发、内置 GC、安全性高、语法简单、编译快速等特点,同时背靠 Google 这棵大树,目前越来越多大公司使用 Go 语言重构后端基础架构和服务,并且使用 Go 语言开发的 Kubernetes 和 Docker 对服务进行管理和部署。后端服务开发对内存使用的要求一直都很高,使用 Go 语言进行开发也一样。Go 语言使用了自动的垃圾回收机制减少了内存使用方面的难度,这是 Go 语言作为现代语言的基本特征,但是如果不理解其内存管理机制,在实际编码中也会在一些细节处理上产生迷惑。深入了解 Golang 的内存管理机制对我们日常使用 Go 语言也有很大的帮助,比如如何避免出现内存泄漏。


本次分享从 Golang 内存管理原理介绍入手,尝试从 Golang 的源代码中去理解 Golang 的内存管理机制,然后结合腾讯教育云在使用 Golang 的实际案例,去剖析如何高效地使用 Golang 的内存,同时规避出现内存管理问题。


内容大纲


  1. Golang 内存分配和管理介绍;

  2. 从 Golang 源代码理解 Golang 内存管理的方式(避免内存碎片,多线程下的内存管理机制,垃圾回收机制);

  3. 使用 Golang 中如何规避内存泄漏问题;

  4. 在实际项目中如何高效利用好 Golang 内存管理机制。


讲师介绍


杨晖


腾讯 教育云技术负责人


12 年后台开发经验,长期从事并关注高性能服务开发,使用过 PHP,C++,Golang 等语言搭建后台服务。目前负责腾讯教育行业中心研发工作,团队技术栈在 2018 年初全面转向 Go 语言和微服务框架,目前使用 beego,gRPC 等框架构建教育云新工科实验室、教育 AI PaaS 能力(智聆口语评测作业批改等)、以及教育云等项目,使用持续集成工具(QCI)、腾讯云端的容器组件(Kubernetes、Docker)、CLB、ELK 等工具打造教育云整套微服务框架,并在各个项目中具体实践和优化。












完整演讲 PPT 下载链接


https://qcon.infoq.cn/2019/guangzhou/schedule


2019-08-17 00:004200

评论 2 条评论

发布
用户头像
恶补了,谢谢分享,这边问下博主可以把文章转载到ApiPost博客中吗,当然了我们会标明出处
2021-08-24 17:06
回复
用户头像
$ go test -bench=ConcatStrings ./gomemory/...
goos: darwin
goarch: amd64
pkg: go-example/gomemory
BenchmarkConcatStrings/b1-str.plus-8 4653 248318 ns/op
BenchmarkConcatStrings/b2-fmt.Sprint-8 13009 93901 ns/op
BenchmarkConcatStrings/b3-strings.Join-8 119884 9334 ns/op
BenchmarkConcatStrings/b4-bytes.Buffer-8 147804 8244 ns/op
BenchmarkConcatStrings/b5-strings.Buffer-8 185582 6056 ns/op
PASS
ok go-example/gomemory 9.229s

展开
2020-05-01 12:55
回复
没有更多了
发现更多内容

商业通识 : 商业为什么能进步?

Walker

学习 得到 个人成长 商业

ARTS Week15

时之虫

ARTS 打卡计划

一点思考|工作十几年了,竟从未用过do-while!

王磊

Java

Go: gops如何与Go运行时交互?

陈思敏捷

gops Go 语言

有奖征文重磅来袭,来!一起玩把大的!

有只小耳朵

3. 站在使用层面,Bean Validation这些标准接口你需要烂熟于胸

YourBatman

Hibernate-Validator Bean Validation 数据校验

2020-09-03-第十三周学习总结

路易斯李李李

甲方日常 8

句子

工作 随笔杂谈 日常

从湖南“软硬兼施”,管窥三湘水畔的智能浪潮

脑极体

Golang Package sync 透析

卓丁

sync Go 语言

[翻译] Go Concurrency Patterns: Pipelines and cancellation[Go并发模式]

卓丁

channel pipeline

拥抱K8S系列-05-基于docker部署面临的问题

张无忌

Docker 运维

实战解读丨Linux下实现高并发socket最大连接数的配置方法

华为云开发者联盟

Linux TCP socket 高并发

深入理解JVM垃圾回收机制 - GC Roots枚举

Skye

GC Roots枚举 安全点 安全区域 OopMap

给大家介绍下,这是我的流程图软件 —— draw.io

程序员小航

工具 流程图 draw.io drawio-desktop 画图软件

LeetCode题解:239. 滑动窗口最大值,单调队列,JavaScript,详细注释

Lee Chen

大前端 LeetCode

程序的机器级表示-数组的分配和访问

引花眠

计算机基础

oeasy教您玩转linux010206 蒸汽机车 sl

o

阿里巴巴发布国内首个公益区块链标准 用技术让公益公开透明

CECBC

区块链 公益

读后感之《任正非:以客户为中心》

王新涵

架构师训练营第十三周总结

张明森

握草,你竟然在代码里下毒!

小傅哥

Java 程序员 小傅哥 bug 有毒代码

翻转链表,机器学习视觉训练,对数据的人工标注,使信息丢失,John 易筋 ARTS 打卡 Week 16

John(易筋)

大数据 学习 ARTS 打卡计划 翻转链表 Google论文评判人工预处理

学习 Java,有什么书籍推荐?学习的方法和过程是怎样的?

沉默王二

Java 学习 程序员 书单

不支持原子性的 Redis 事务也叫事务吗?

大头星

Java redis 事务

你问我答:容器平台改造后的安全是如何解决的?

BoCloud博云

云计算 容器 微服务 PaaS 博云

透彻理解AQS源码分析系列之AQS基础二

InfoQ_d2212957090d

用函数式写法精简Java代码的一个例子

Sean

Java 函数式编程

ARTS打卡 第15周

引花眠

微服务 ARTS 打卡计划

Spring 5 中文解析测试篇-Spring测试

青年IT男

Spring5 JUnit

给DevOps加点料——融入安全性的DevSecOps

禅道项目管理

DevOps 运维 测试 开发 安全性

Golang 内存管理探微——如何高效使用 Golang 内存以及腾讯云实战_QCon_杨晖_InfoQ精选文章