每个操作系统都有一个固定大小的栈内存,用户保存函数的局部变量。但是空能会这个固定大小显然不太灵活。而goroutine在生命周期开始时申请一个很小的栈,与操作系统线程类似,用于保存函数调用期间的局部变量。本质区别是它的大小不是固定的,可以按需增大和缩小 我要晨读

已有510人晨读

目前,自动化前端开发的最大障碍是计算能力。不过,我们可以使用当前的深度学习算法和人造的训练数据来探索人工前端自动化。 我要晨读

已有734人晨读

Github提供的GraphQL接口非常全面,那么我们该如何搭建出自己的接口呢?好在GraphQL提供了很多语言的解决方案。本文主要阐述如何用go搭建自己的GraphQL服务器。如果了解GraphQL建议先阅读GraphQL — API查询语言 或相关资料。 我要晨读

已有4237人晨读

你有没有好奇过 Go 运行时是如何调度 goroutine 的?有没有深入研究过为什么有时候加了并发但是性能没有提高? Go 提供了执行跟踪器,可以帮助你诊断性能问题(如延迟、竞争或低并发等)、解决前面那些疑问。 我要晨读

已有1057人晨读

想象一下,在 HTTP 服务器上有一个巨大的 ZIP 文件,你想知道里面的内容。你不知道压缩包内是否有你需要的东西,而且你不想下载整个文件。是否可以像执行 unzip -l https://example.com/giant.zip 的操作来查看压缩包的内容呢? 我要晨读

已有581人晨读

snowflake ID 算法是 twitter 使用的唯一 ID 生成算法,为了满足 Twitter 每秒上万条消息的请求,使每条消息有唯一、有一定顺序的 ID ,且支持分布式生成。 我要晨读

已有618人晨读

在Go的惯用法中,返回值不是整型等常用返回值类型,而是用了一个 error(interface类型)。 我要晨读

已有829人晨读

因为节目集数量较大,不能一次性的读入内存,因此每次读出一部分记录写入ES。ORM使用的是beego。为了提高性能使用了协程,其中读MySQL的部分最大开启20个协程,ES写入部分开启了15个协程(因为ES分片设置的问题,5个协程和15个协程性能映像不大)。 我要晨读

已有493人晨读

今天我想和大家分享 Go 语言一些非常实用的技巧,用于编码和解码 JSON 文档。Go 语言的 encoding/json 包有一些有趣的特性,帮助我们轻松地解析 JSON 文档。你可以轻松地将大多数实际应用中的 JSON 转换为带有 Go 语言结构体标签的接口或者是 Marshaler 和 Unmarshaler 接口。 我要晨读

已有603人晨读

对于我这类主要使用 Linux 的人来说,我对于偶尔不得不去应付 Windows 下的问题感到十分的痛苦。这句话在我写我们的 Smart Agent™ 的时候显得格外正确,它能同时跑在 Linux 和 Windows 上,并且会为了我们的日志管理及监控软件去深入探究这两个系统的底层相关问题。 我要晨读

已有559人晨读

大家都知道go语言的defer功能很强大,对于资源管理非常方便,但是如果没用好,也会有陷阱哦。Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,那么defer、return、返回值、panic 之间的执行顺序是怎么样的呢,下面我们就一点一点来揭开它的神秘面纱!话不多说了,来一起看看介绍吧。 我要晨读

已有583人晨读

背景:服务需要高频发出GET请求,然后我们封装的是 golang 的net/http 库, 因为开源的比如req 和gorequsts 都是封装的net/http ,所以我们还是选用原生(req 使用不当也会掉坑里)。我们的场景是多协程从chan 中取任务,并发get 请求,然后设置超时,设置代理,完了。我们知道net/http 是自带了连接池的,能自动回收连接,但是,发现连接暴涨,起了1万个连接。 我要晨读

已有1115人晨读

大多数的 Go 程序员都知道和喜欢用 go test,这个测试工具来自于 Go 官方的 gc 工具链。(想要执行测试代码)这个命令可能是最简单的了,而且还能做得很漂亮。 我要晨读

已有1443人晨读

Kubernetes如今风靡一时,所有主要的云服务提供商都将其作为部署云原生应用的解决方案。Kubernetes有哪些显著的特性和工具优势,让企业开始接受它?本文作者给出了系统的梳理。 我要晨读

已有615人晨读

context是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入。它用来简化在多个go routine传递上下文数据、(手动/超时)中止routine树等操作 我要晨读

已有1737人晨读

这些令人惊叹的特性没有浮于表面,它们可以为你节省大量的工作。它们还可以使软件开发更加愉快。 我要晨读

已有710人晨读

在Go中,接口是一组方法签名。当一个类型为接口中的所有方法提供定义时,它被称为实现该接口。它与oop非常相似。接口指定类型应具有的方法,类型决定如何实现这些方法。 我要晨读  相关阅读: 网页链接 

已有1384人晨读