Go 编程:一分钟实现管道 pipe 功能

管道是什么但凡在类Unix系统上敲过命令的人,大多使用过管道功能.所谓管道,就是将A程序的标准输出作为B程序的标准输入。

Go语言小技巧——合理使用Pool

垃圾回收一直是Go语言的一块心病,在它执行垃圾回收的时间中,你很难做什么。一个含有100000个int值的结构体,在标准方法中,每次均新建,重复10000次,一共需要耗费193ms;。

2020重学Go系列:33. 如何手动实现一个协程池?

在 Golang 中要创建一个协程是一件无比简单的事情,你只要定义一个函数,并使用 go 关键字去执行它就行了。

Go Slice与String内存布局和实现

对比slice和map的结构可以看出为了存储数据map用了更多的内存空间,并且可能存在链表。小对象对待,增加了扫描的时间,因此gc时间相对更长。

利用CPU cache特性优化Go程序

for i := 0; i < 1000 * 1000; i++ {本文为了简洁,省略了很多计算机系统方面的细节,比如内存对齐,数据写入缓存后何时写入内存,多个 CPU 核如何保证缓存一致性,MESI 协议,CPU 如何知道原本想访问的内存地址存放在 cache 的什么位置

Go Web 框架 Gin 路由的学习

Gin http 服务是基于 Go 的 net/http 库的, net/http 库中handler 的实现是针对不同的 http method 的,所以需要在engine 中针对不同的method 提供不同的trie 树。

比Python还方便的Go语言要出2.0了,你想怎么设计?

而 Go 语言并行性能高、部署方便和简单便捷等特性令其在一些应用上超过了 Python,机器之心也曾讨论过由 Python 转向 Go 的 9 大原因。

Go语言IDE推荐

Go语言(Golang )自发布以来,以其独有的魅力迅速了占领一大片市场。如今,通过使用插件,大多数流行的文本编辑器和IDE都支持Golang。一. GolandGoland 是 JetBrains 以 Intellij IDEA 为底子,针对Go语言开发的特定解决方案。

Go 中类型转换的那些事

strconv包可以大致分成string/数字型转换,rune/sting转换。常用的string/数字型转换又可以分三大类,Parse/Format/Append,简单理解就是数字型解析成字符串、数字型格式化成字符串和数字型拼接三种方法。

​​Go语言:gRPC调用

在上节课内容中,我们学习了使用gRPC框架实现服务的调用编程。在gRPC框架中,诸如上节课我们学习的在客户端与服务端之间通过消息结构体定义的方式来传递数据,我们称之为“单项RPC”,也称之为简单模式。