使用 runtime/pprof 后 有时候会看到 prof 文件是空的
CPU消耗分析使用 runtime/pprof 做应用程序性能监控
在Go中使用自己签署的证书 [翻译]
如何创建CA证书,然后在Golang中使用该CA签名证书。我们将使用httptest服务端来部署我们的证书,并使用net/http客户端与服务器进行通信。要求Golang v1.11.4 +使用的包在本演示中,我们将使用Golang 标准库中提供的以下Go包:
如何正确的使用golang mysql driver
官方文档https://golang.org/pkg/database/sql/#DB,虽然写了如何使用它来执行SQL数据库查询和语句的例子,但是没有很好的说明如何正确的配置sql.DB改善性能,SetMaxOpenConns(), SetMaxIdleConns() and SetConnMaxLifetime()这三个方法也通常被初学者忽略。Open and idle connections:一个sql.DB是包含许多'open'和'idle'连接的数据库连接池的对象。 当你使用它执行数据库任务时(例如执...
JavaScript 中英文字符串的长度和Golang的长度判断
JavaScript 是一个字符占用一位的。例如 Hello, 世界 包含 9 个字符,然而在Golang 直接调用len() 方法获取长度 确是 13个字符。我们知道Golang 是UTF-8编码的。在 Go 语言中,是不能用 len 函数来统计字符串中的字符个数的,这是因为在 Go 中,字符串是以 UTF-8 为格式进行存储的,在字符串上调用 len 函数,取得的是字符串包含的 byte 的个数。例如字符串:Hello, 世界 包含 9 个字符。使用 len("Hello, 世界") ...
Golang捕获panic堆栈信息的优雅姿势
// PanicTrace trace panic stack info. func PanicTrace(kb int) []byte { s := []byte("/src/runtime/panic.go") e := []byte("\ngoroutine ") line := []byte("\n") stack := make([]byte, kb<<10) //4KB length :...
使用Go Chanel 模拟配置文件热加载
Go 信号Go 语言中的信号量主要是用于Unix/Linux系统,但是也部份兼容Windows。 在标准库中,主要涉及到os/signal和syscall这两个包。其中,os/signal包主要是提供信号操作函数,而syscall里定义了许多信号常量。简单示例这里先看一段简短的代码:package main import ( "fmt" "os" "os/signal" ) func main() { c := m...
Golang-基于reflect和tag自动填充struct数据
用Go开发Server端提供一些JSON数据格式的API,会定义业务Model,同时标记其json名字。type School struct { ID int `json:"id"` Name string `json:"name"` }通常也会复用这个Model来接收创建或者更新请求的参数。
Go语言中io.Reader和io.Writer的详解与实现
一、前言也许对这两个接口和相关的一些接口很熟悉了,但是你脑海里确很难形成一个对io接口的继承关系整天的概貌,原因在于godoc缺省并没有像javadoc一样显示官方库继承关系,这导致了我们对io接口的继承关系记忆不深,在使用的时候还经常需要翻文档加深记忆。本文试图梳理清楚Go io接口的继承关系,提供一个io接口的全貌。二、io接口回顾首先我们回顾一下几个常用的io接口。标准库的实现是将功能细分,每个最小粒度的功能定义成一个接口,然后接口可以组成成更多功能的接口。
Go语言使用字符串的几个技巧分享[转]
一、字符串底层就是一个字节数组这真的非常重要,而且影响着下面的其他几个技巧。当你创建一个字符串时,其本质就是一个字节的数组。这意味着你可以像访问数组一样的访问单独的某个字节。例如,下面的代码逐个打印字符串中的每个字节以及对应字节数组中的每个字节:package main import "fmt" func main() { str := "hello" for i := 0; i < len(str); i++ { fmt.Printf(...
利用Go语言追加内容到文件末尾
前言我研究了file库,终于让我找到了利用Go语言追加内容到文件末尾的办法主要的2个函数: