# 深度解密Go语言 Go语言是一种静态类型、编译型和并发的编程语言,由Google开发。它的设计目标是提供一种简单、高效和可靠的编程语言,特别适用于大规模的系统开发。本文将深度解密Go语言的特性和用法,并提供一些代码示例帮助读者更好地理解。 ## 并发编程 Go语言的一个重要特性是并发编程。它提供了goroutine和channel机制来实现轻量级的并发操作。goroutine是一种轻量级
原创 2023-08-10 15:41:46
45阅读
对称加密中,加密和解密使用相同的密钥,因此必须向解密者配送密钥,即密钥配送问题。而非对称加密中,由于加密和解密分别使用公钥和私钥,而公钥是公开的,因此可以规避密钥配送问题。非对称加密算法,也称公钥加密算法。     1977年,Ron Rivest、Adi Shamir、Leonard Adleman三人在美国公布了一种公钥加密算法,即RSA公钥加密算法。RSA是目前最有影响力和最常用的
相信很多人都听过“雷神 3”关于性能优化的故事。在一个 3D 游戏引擎的源码里,John Carmack 将 1/sqrt(x) 这个函数的执行效率优化到了极致。一般我们使用二分法,或者牛顿迭代法计算一个浮点数的平方根。但在这个函数里,作者使用了一个“魔数”,根本没有迭代,两步就直接算出了平方根。令人叹为观止!因为它是最底层的函数,而游戏里涉及到大量的这种运算,使得在运算资源极其紧张的 DOS 时
原创 2021-02-25 10:23:00
214阅读
好久不见,你还好吗?距离上一篇文章已经过去了一个多月了,迟迟未更新文章,我也很着急啊,哈哈。跟大家汇报一下,这段时间我在看 proc.go 的源码,其实就是调度器的源码。代码有几千行之多,不像以往的 map,channel 等等。想把这些代码都看明白,是一个庞大的工程。到今天为止,我也不敢说我都看明白了。要深挖下去的话,会无穷无尽,所以阶段性的探索就到这里。接下来就把这段时间的探索分享出来。其实,
原创 2021-02-25 10:31:55
139阅读
这篇文章主要讲 map 的赋值、删除、查询、扩容的具体执行过程,仍然是从底层的角度展开。结合源码,看完本文一定会彻底明白 map 底层原理。我要说明的是,这里对 map 的基本用法涉及比较少,我相信可以通过阅读其他入门书籍了解。本文的内容比较深入,但是由于我画了各种图,我相信很容易看懂。放上本文的内容提纲:什么是 map维基百科里这样定义 map:In computer science, an a
原创 2021-02-25 10:37:52
212阅读
目录 ​​什么是 pprof​​​​pprof 的作用​​​pprof 如何使用​ ​​runtime/pprof​​​​net/http/pprof​​ ​pprof 进阶​ ​​Russ Cox 实战​​​​查找内存泄露​​ ​​总结​​​​参考资料​​ 相信很多人都听过“雷神 3”关于性能优化的故事。在一个 3D 游戏引擎的源码里,John Carmack 将 ​​1/sqrt(x)​​ 这
转载 2019-11-12 11:30:00
86阅读
2评论
好久不见,你还好吗?距离上一篇文章已经过去了一个多月了,迟迟未更新文章,我也很着急啊。 跟大家汇报一下,这段时间我在看 proc.go 的源码,其实就是调度器的源码。代码有几千行之多,不像以往的 map,channel 等等。想把这些代码都看明白,是一个庞大的工程。到今天为止,我也不敢说我都看明白了 ...
转载 2021-10-06 22:35:00
145阅读
2评论
大家好!“深度解密 Go 语言”系列好久未见,我们今天讲 channel,预祝阅读愉快!在开始正文之前,我们先说些题外话。 上一篇关于 Go 语言的文章讲 Go 程序的整个编码、编译、运行、退出的全过程。文章发出后,反响强烈,在各大平台的阅读量都不错。例如登上了 48 小时阅读排行榜,并且受到 ...
转载 2021-10-06 22:34:00
159阅读
2评论
上一篇文章我们详细分析了 map 的底层实现,如果你也跟着阅读了源码,那一定对 unsafe.Pointer 不陌生,map 对 key 进行定位的时候,大量使用。 unsafe.Pointer 位于 unsafe 包,这篇文章,我们来深入研究 unsafe 包。先说明一下,本文没有之前那么长了,你 ...
转载 2021-10-06 22:30:00
57阅读
2评论
Go 语言的 context 包短小精悍,非常适合新手学习。不论是它的源码还是实际使用,都值得投入时间去学习。这篇文章依然想尝试全面、深入地去研究。文章相比往期而言,整体不长,希望你看完可以有所收获!贴上文章的目录:什么是 contextGo 1.7 标准库引入 context,中文译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。c
原创 2021-02-25 10:36:18
212阅读
o 语言的 slice 很好用,不过也有一些坑。slice 是 Go 语言一个很重要的数据结构。网上已经有很多文章写过了,似乎没必要再写。但是每个人看问题的视角不同,写出来的东西自然也不一样。我这篇会从更底层的汇编语言去解读它。而且在我写这篇文章的过程中,发现绝大部分文章都存在一些问题,文章里会讲到,这里先不展开。我希望本文可以终结这个话题,下次再有人想和你讨论 slice,直接把这篇文章的链接丢
原创 2021-02-25 11:12:16
1004阅读
Go 语言的slice很好用,不过也有一些坑。slice是 Go 语言一个很重要的数据结构。网上已经有很多文章写过了,似乎没必要再写。但是每个人看问题的视角不同,写出来的东西自然也不一样。我这篇会从更
转载 2022-12-26 14:19:28
10000+阅读
涉及比较少,我相信可以通
转载 2022-12-13 09:22:13
75阅读
一篇文章我们详细分析了 map 的底层实现,如果你也跟着阅读了源码,那一定对 unsafe.Pointer 不陌生,map 对 key 进行定位的时候,大量使用。unsafe.Pointer 位于 unsafe包,这篇文章,我们来深入研究 unsafe 包。先说明一下,本文没有之前那么长了,你可以比较轻松地读完,这样的时候不是太多。上次发布文章的时候,包括代码超过 5w 字,后台编辑器的体验非常差
原创 2021-02-25 10:37:16
369阅读
反射和Interface息息相关,而Interface是我们上一篇文章的内容。在开始正文前,和大家说点题外话。上一篇关于Interface的文章发出后,获得了很多的关注和阅读。比如,登上了GoCN的每日新闻第一条:可能是编辑者觉得这篇文章称不上“深度解密”,把标题给小小地改动了下,哈哈~~在博客园登上了48小时阅读排行榜:在开发者头条APP(类似于今日头条,不过内容都是技术相关的,还挺有意思的)上
原创 2021-02-25 11:10:34
174阅读
这篇文章主要讲 map 的赋值、删除、查询、扩容的具体执行过程,仍然是从底层的角度展开。结合源码,看完本文一定会彻底明白 map 底层原理。 我要说明的是,这里对 map 的基本用法涉及比较少,我相信可以通过阅读其他入门书籍了解。本文的内容比较深入,但是由于我画了各种图,我相信很容易看懂。 本文的目 ...
转载 2021-10-06 22:29:00
238阅读
2评论
反射和 Interface 息息相关,而 Interface 是我们上一篇文章的内容。在开始正文前,和大家说点题外话。 上一篇关于 Interface 的文章发出后,获得了很多的关注和阅读。比如,登上了 GoCN 的每日新闻第一条: 可能是编辑者觉得这篇文章称不上“深度解密”,把标题给小小地改动了下 ...
转载 2021-10-06 22:28:00
207阅读
2评论
工作中,经常会碰到并发读写 map 而造成 panic 的情况,为什么在并发读写的时候,会 panic 呢?因为在并发读写的情况下,map 里的数据会被写乱,之后就是 Garbage in, garbage out,还不如直接 panic 了。本文目录如下:是什么Go 语言原生 map 并不是线程安全的,对它进行并发读写操作的时候,需要加锁。而 sync.map 则是一种并发安全的 map,在 G
原创 2021-02-25 09:54:40
218阅读
最近在工作中碰到了 GC 的问题:项目中大量重复地创建许多对象,造成 GC 的工作量巨大,CPU 频繁掉底。准备使用sync.Pool 来缓存对象,减轻 GC 的消耗。为了用起来更顺畅,我特地研究了一番,形成此文。本文从使用到源码解析,循序渐进,一一道来。本文基于 Go 1.14是什么有什么用怎么用简单的例子fmt 包如何用pool_test其他源码分析Pool 结构体GetPutpack/unp
原创 2021-02-25 10:18:51
173阅读
最近在工作中碰到了 GC 的问题:项目中大量重复地创建许多对象,造成 GC 的工作量巨大,CPU 频繁掉底。准备使用 sync.Pool 来缓存对象,减轻 GC 的消耗。为了用起来更顺畅,我特地研究了一番,形成此文。本文从使用到源码解析,循序渐进,一一道来。 本文基于 Go 1.14 目录 是什么
转载 2020-04-21 09:29:00
131阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5