在 Go 中实现 Monkey Patch

背景

在进行单元测试的时候,通过 testify框架 对测试函数的数据和所依赖的方法做 mock,但是单测出现 panic。 根据错误提示,被测试函数调用了 time.Now(), 因为会对比这个函数返回值, 所以本次单测没有跑通过。下面介绍通过 monkey patch 来解决这个问题。

Go 程序性能分析

背景

Go 是 GC 类语言,内存自动回收。 如果程序中已动态分配的堆内存由于某种原因程序未释放或无法释放, 这时候就会产生内存泄露, 造成系统内存浪费,导致程序运行减慢甚至系统 OOM。类似地,程序在运行过程中可能会出现 CPU 问题。

性能分析是排查内存泄露等问题的常见手段, 可以让我们了解和捕获到程序堆内存和 Profile 信息, 方便定位问题。Go 原生提供了丰富的分析工具,下面是通过几个内存泄露的案例对 Go 程序做性能分析,并介绍相关工具原理和细节。

Armbian 配置 WIFI

把斐讯 N1(电视盒子) 重装了 Armbian 系统,机器有无线网卡但系统没桌面环境,只能通过命令行控制 WIFI 连接。这里记录 设置 WIFI 的方法。