Browsed by
标签:golang

如何使用 Diago 诊断 Go 程序中的 CPU 和内存使用情况

如何使用 Diago 诊断 Go 程序中的 CPU 和内存使用情况

原文链接:https://remy.io/blog/how-to-use-diago-to-diagnose-cpu-and-memory-usage-in-go-programs/ 作者:Rémy Mathieu https://github.com/remeh/diago Diago 是借助 pprof 生成的配置文件和堆快照的可视化工具。 它是一个独立的应用程序,显示每个函数(或函数中每行代码)的 CPU 使用率的调用树,但也可以显示堆快照。 我们将在这篇简短的文章中介…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇6:自定义 Server 相关,替换或扩展默认的 Server

Echo系列教程 — 定制篇6:自定义 Server 相关,替换或扩展默认的 Server

这是定制篇的最后一节,讲解 Server 的自定义。 默认 Server 通常情况下,Echo 通过如下方式启动一个 HTTP Server: e := echo.New() e.GET(“/”, func(c echo.Context) error { return c.String(http.StatusOK, “Hello, World!”) }) e.Logger.Fatal(e.Start(“:2020”)) 我们打开源码一探究竟: // Start starts …

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
用 Go 编写能存数百万条记录仍非常快的缓存服务

用 Go 编写能存数百万条记录仍非常快的缓存服务

本文发布于 2016 年 3 月,但其中的设计技巧仍然有效。 我们的团队需要编写非常快速的缓存服务。目标非常明确,但可以通过多种方式实现。最后,我们决定尝试一些新的东西,并在 Go 中实现该服务。本文描述了我们是如何做到的以及由此产生的价值。 目录 需求 为什么用 Go 缓存 并发 移除 避免 GC BigCache HTTP 服务器 JSON 反序列化 最终结果 总结 需求 根据需求,我们的服务应: 使用 HTTP 协议处理请求 支持 10K RPS (5k 写,5k 读)…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
官方不推荐使用 Goroutine ID,但它自己却使用了:原来是这么做的

官方不推荐使用 Goroutine ID,但它自己却使用了:原来是这么做的

在操作系统中,每个进程都会有一个唯一的进程编号,每个线程也有自己唯一的线程编号。同样在 Go 语言中,每个 Goroutine 也有自己唯一的 Go 程编号(下文简称为 goid),这个编号在 panic 等场景下经常遇到。虽然 Goroutine 有内在的编号,但是 Go 语言却刻意没有提供获取该编号的接口。 故意设计没有 goid 根据官方的相关资料显示,Go 语言刻意没有提供 goid 的原因是为了避免被滥用。因为大部分用户在轻松拿到 goid 之后,在之后的编程中会不…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇4:自定义 Renderer,增强或替换模板引擎

Echo系列教程 — 定制篇4:自定义 Renderer,增强或替换模板引擎

Render,顾名思义,要进行页面渲染。Go 语言不但自带有强大的 http 库,还自带了 HTML 模板引擎。Echo 框架对模板引擎进行了一些额外处理,并提供了给用户自定义页面渲染的接口。本文就相关问题进行探讨。 模板渲染 Echo 框架的 Context 接口提供了下面的方法进行页面渲染: // echo 包中 Context 接口的方法 Render(code int, name string, data interface{}) error 其中,code 是 HT…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Go1.14 的这个改进让 Gopher 生活更美好

Go1.14 的这个改进让 Gopher 生活更美好

Go1.14 的 go test -v 支持流式输出 testing 包是 Go 标准库中我最喜欢的程序包之一,不仅是它具有低干扰的单元测试方法,而且在 Go 的整个生命周期中,它可以改善、提高生活质量 ^_^。 在 Go1.14 中,go test -v 将使 t.Log 的输出变成流式,而不是在测试运行结束之前进行存储,最后一起输出。看一个例子: package main import ( “fmt” “testing” “time” ) func TestLogStre…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇3:自定义 Logger,用你喜欢的日志库

Echo系列教程 — 定制篇3:自定义 Logger,用你喜欢的日志库

在知识星球简书项目中,我们分析对比了目前的一些日志库。虽然 Go 标准库有一个 log,但功能有限,所以才出现了很多第三方的日志库。在 用 Go 实现一个简书 8:日志记录和优秀库的学习 中,我们得出结论,推荐大家使用 zerolog。现在我们就将 zerolog 集成进 Echo 框架中。 Echo 默认的 Logger Echo 日志记录的默认格式是 JSON,可以通过修改标头来更改,即 Echo#Logger.SetHeader(io.Writer)。 Log Head…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Go 官宣:新版 Protobuf API

Go 官宣:新版 Protobuf API

原文作者:Joe Tsai, Damien Neil 和 Herbie Ong 原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffers 发布时间:2020-03-02 翻译:polaris,Go 语言中文网 简介 我们很高兴地宣布,用于 Google 的语言无关数据交换格式 protocol buffers 的新版 Go API 发布了,这是一次重大的版本升级。 新 API 的动机 Go 的第一个 prot…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 定制篇2:自定义 Validator,进行输入校验

Echo 系列教程 — 定制篇2:自定义 Validator,进行输入校验

上一篇讲 Binder 时提到,参数自动绑定和校验是 Web 框架很重要的两个功能,可以极大的提升开发速度,并更好的保证数据的可靠性(服务端数据校验很重要)。本节,我们就一起看看如何自定义 Echo 的表单校验功能。 不同于 Binder,Echo 并没有内置数据校验的能力,也就是没有默认的 Validator 实现。然而,你可以很方便的集成第三方的数据校验库。跟 Binder 类似,Echo 提供了一个 Validator 接口,方便将第三方数据校验库集成进来。 Valid…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
2020 年为什么要选择 Go 并放弃 Python

2020 年为什么要选择 Go 并放弃 Python

过去一段时间,Go 语言中文网推过挺多 Python 相关的公众号,很多人诧异:为什么推的都是 Python 的呢?其实主要原因是因为 Python 类的公众号实在太多了,而且很多粉丝都特别多,我也挺纳闷的。不过他们值得我学习,也说明 Go 还有很长的路要走。 为了证明 Go 语言中文网坚持做 Go 语言,推广 Go、分享 Go,为 Go 的发展做贡献,这两天会分享两篇 Go 和 Python 的对比文章。欢迎指正。 您会在 Python 和 Go 之间选择哪个?如果您对 G…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...