「GoCN酷Go推荐」简单易用的性能分析工具——nitro

#1

推荐理由

Golang官方在程序性能分析方面提供了用来分析cpu/内存等采样信息的pprof,以及用来追踪和分析运行时事件的trace,这两个工具对于分析程序的性能瓶颈可以说是得心应手。但是,对于想分析一个项目中的某个代码片段或者函数的耗时/内存占用,pprof和trace就有点不是很方便了。本文介绍的nitro库可以简单方便的应用于类似的性能分析场景。

#2

功能介绍

源码不到200行的nitro,提供执行时间和内存占用的打点和统计功能。

#3

使用指南

注意:nitro非协程安全,也不支持调用链上的性能分析。

安装

go get github.com/spf13/nitro

代码示例

nitro使用起来非常简单,下面是个简单示例,分析someFunc和otherFunc函数执行耗时和内存分配。

package main

import (
 "flag"

 "github.com/spf13/nitro"
)

func analysis() {
 timer := nitro.Initialize()
 // 通过命令行参数开启分析
 flag.Parse()
 // 默认开启
 // nitro.AnalysisOn = true

 someFunc()
 timer.Step("step 1, write index")

 otherFunc()
 timer.Step("step 2, batch insert")
}

nitro将打点结果直接输出到标准输出,对于想输出到日志文件或者监控系统的,源码本身也很简单,改造一下也比较方便,可结合场景自行改造。

#4

总结

nitro适用于分析代码片段的耗时/内存占用,对于类似场景可以考虑使用。

#5

参考资料

  • https://github.com/spf13/nitro

《酷Go推荐》招募:

各位Gopher同学,最近我们社区打算推出一个类似GoCN每日新闻的新栏目《酷Go推荐》,主要是每周推荐一个库或者好的项目,然后写一点这个库使用方法或者优点之类的,这样可以真正的帮助到大家能够学习到

新的库,并且知道怎么用。

大概规则和每日新闻类似,如果报名人多的话每个人一个月轮到一次,欢迎大家报名!戳「阅读原文」,即可报名

扫码也可以加入 GoCN 的大家族哟~

1477f93680ae433357a053d51799a300.png

048a5ac5a0c5ddd98c756d7f84f6ac11.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值