请稍侯

如何排查Go程序CPU占用过高问题

前言 如果要在 golang 开发过程中进行性能调优,一般需要使用 pprof,本文介绍的是 pprof 工具使用方法。 代码示例 mport ( // 略 _ "net/http/pprof" // 会自动注册 handler 到 http server,方便通过 http 接口获取程序运行采样报告 // 略 ) func main() { // 略 runtime.GOMAXPROCS(1) // 限制 CPU 使用数,避免过载 runtime.SetMutexProfileFraction(1) // 开启对锁调用的跟踪 runtime.SetBlockProf...

查看全文

golang行为型解释器模式

解释器模式是什么 解释器是一种行为型设计模式,指给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。 为什么用解释器模式 在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的语言,那么这些问题实例将是该语言的一些句子,这样就可以用“编译原理”中的解释器模式来实现了。虽然使用解释器模式的实例不是很多,但对于满足以上特点,且对运行效率要求不是很高的应用实例,如果用解释器模式来实现,其效果是非常好的。 参考...

查看全文

利用wireshark远程抓包openwrt

前言 最近在调试设备时需要在本地远程调试openwrt内的数据 操作步骤 打开git_bash 进入到Wireshark的安装目录 开户ssh免登陆 运行以下代码 ssh admin@10.0.0.158 "tcpdump -s 0 -U -n -i br-lan -w - 'not port 22'" | ./wireshark.exe -k -i - 参考链接 https://blog.csdn.net/yuan9ji/article/details/78546117

查看全文

防火墙未开启导致通过redis篡改.ssh/authorized_keys

前言 今天突然发现无法免密码登陆服务器了,心里一凉,难道服务器被破坏了? 登陆上去查看 ~/.ssh/authorized_keys ,发现里面全是乱码,幸运的是有一个关键字 REDIS,难道是redis搞的? 这么一想,我立马查看了一下防火墙规则,不知道谁把我之前配置好的规则清空了,现在默认接受所有端口连接,先把防火墙重新配置,阻止外部访问redis。 然后想办法恢复,我并不知道为什么redis会往authorized_keys写内容,于是只能google了一下。。 redis-cli查询: 127.0.0.1:6379> config get dir 1) "dir" 2) ...

查看全文

Golang微信支付V3SDK回调坑

前言 o在使用 微信最新的V3sdk时 接收回调通知的记录 这里使用的是官方文档中的方法1 使用时发现 回调header中返回的序列号和本地不一致 原因是header中的序列号是平台证书序列号 本地证书是商户证书 报错 获取平台证书后解密报错: not valid wechatpay notify request: validate verify fail serial=[***************] request-id=[] err=verifty signature with public key err:crypto/rsa: verification error 问题...

查看全文

SD卡如何格式化

前言 用SD卡下载程序到串口屏需要先将SD卡格式化,而直接鼠标右键快速格式化这种方式不行,必须通过字符命令行格式化才行,即运行-cmd命令。 格式化 format/q f:/fs:fat32/a:4096 参考:https://blog.csdn.net/wsq_666/article/details/109492631

查看全文

linux 查看运行进程所在目录

前言 通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。 在linux下查看进程用 ps -ef | grep XXX 查看pid所在的目录 ll /proc/PID 参考:https://blog.csdn.net/u014252478/article/details/87866066

查看全文

Nativefie可以把网页打包成exe的工具

前言 一个有、意思的工具, 可以把web页面打包成运行在桌面的应用, 并支持win / mac / linux等平台, 记一下使用过程, 有(xiang)需(mo)要(yu)的大佬可以玩玩~ 1. 安装 npm install nativefier -g 2. 使用 nativefier "https://www.zhihu.com/" 参考:https://zhuanlan.zhihu.com/p/138307250

查看全文

golang中使用cgo

前言 CGO是Go语言的一个特性,允许在Go程序中调用C代码或者在C程序中调用Go代码。CGO提供了一种简单的方式来编写跨语言的应用程序,同时也提供了对现有C库的直接访问能力。 idea配置cgo编辑 Go的runtime环境变量 CGO_ENABLED=1 示例代码 package main /* #include <stdint.h> typedef uint8_t BYTE; typedef uint16_t WORD; BYTE gabyCRCLo[] = { 0x00,0xc0,0xc1,0x01,0xc3,0x03,0x02,0xc2,0xc6,0x06,...

查看全文