Go总结(十八)| pprof性能分析

Go语言提供了很多性能分析的工具,性能分析类型有如下几种: CPU性能分析 内存性能分析 阻塞性能分析 锁性能分析 CPU性能分析 生成profile文件 Go 的运行时性能分析接口都位于 runtime/pprof 包中。只需要调用 runtime/pprof 库即可得到我们想要的数据。 看下面的例子,随机生成了 5 组数据,并且使用冒 ………

阅读全文

Go总结(十七)| 反射(reflect)

Go语言反射特性(reflect)提供了运行时动态获取对象的类型和值以及动态创建对象的能力。反射可以帮助抽象和简化代码,提高开发效率,但通常降低运行效率。 Go语言中的反射 Go语言提供了一种机制在运行时更新和检查变量的值、调用变量的方法和变量支持的内在操作,但是在编译时并不知道这些变量的具体类型,这种机制被称为反射。反射也可以让我们将类 ………

阅读全文

RPC(二)| Golang gob与rpc简介

Go 语言广泛地应用于云计算和微服务,成熟的 RPC 框架和微服务框架不少;grpc、rpcx、go-zero、go-micro 等都是非常成熟的框架。通常来说RPC 是微服务框架的一个子集,微服务框架可以自己实现 RPC ,或者选择不同的 RPC 框架作为通信基础。 为了深入学习RPC框架,我们这里模拟标准库net/rpc,自己从零开始 ………

阅读全文

RPC(一)| 初识RPC

通常我们写程序时需要封装,需要函数调用,函数调用通常在本程序内完成。随着计算机技术的发展和需求场景的变化,有时就需要从一台计算机上执行另外一台计算机上的程序的需求,因此发展出来了RPC技术。特别是目前随着互联网技术的快速迭代和发展,用户和需求几乎都是以指数式的方式在高速增长,这个时候绝大多数情况下程序都是部署在多台机器上,就需要在调用其他……

阅读全文

Go总结(十六)| 自定义Log日志

开发软件日志很重要,不管是应用的标准输出信息,还是主动打印的日志,还是被动的异常信息;都有被记录和整理的需求。大数据从哪里来,很多时候其实是从日志中来的。日志很重要,Go标准库也为日志输出内置了大量实用方法。 标准配置 标准库就提供了这些参数,按需要配置就好了: 1 2 3 4 5 6 7 8 9 10 const ( Ldate = 1 ………

阅读全文

LBS商学院学习体会

上周末参加了公司组织的为期三天的集体学习一一第54期LBS商学院复盘训练营。 听了一些精彩的讲座,做了不少有意思的游戏,见识了众多年轻有理想的创业者,更学到了很多新奇的管理理念。活动快结束的时候,每个人都上台分享了自己的心得体会,大家总结课程内容都做的蛮好,个别表达了自己内心对经营企业的认知;说的都很棒。 不例外,我也上台表达了自己的愚 ………

阅读全文

常用并发压力测试工具

现在IT领域都讲大数据、高并发、海量连接等时髦词汇,这些特性的系统在上线之前一定会做大量的测试,今天介绍一些常用的性能测试工具。 先认识几个专有名词: 1、吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理 ………

阅读全文

Nginx配置常用技巧

编译安装 可以自己上nginx官方网站下载安装包,解压之后用下面命令编译安装: 1 2 3 4 ./configure --prefix='/opt/nginx' --with-http_ssl_module --with-http_gzip_static_module \ ………

阅读全文

Go总结(十五)| Runner、Pool、Work简介

前面我们学习了并发以及解决并发的常用方式;今天我们看看Go语言实现的三种常用并发模式;这些模式可以在实际生产应用中合理使用,免去了我们造轮子的过程。 我们说过通道的性能并不是太好,这个在大批量循环处理的时候的确有些问题。性能不是关键诉求的场景下还是可以的,他能简化编程。这里讲的三种并发模式,都需要结合使用通道和协程。 Runner 下面给 ………

阅读全文

Go总结(十四)| Atomic、Mutex、Channel比较

第九篇文章我们学习了Go解决并发编程问题的三种方式。归根结底都是采用加锁,让并发变成同步访问。那么这些处理方式性能如何呢? 先介绍一个Linux下面统计时间的命令time,具体可以参考:https://www.runoob.com/linux/linux-comm-time.html 这里做一个测试,启动两个协程,一个对数执行++操作,一 ………

阅读全文