分类 "Golang" 下的文章

想不想知道 e5 洋垃圾的性能?好家伙,我手痒了!!!

前阵子我用 Go 写了一个小工具 —— GoHyperPi!通过计算圆周率 π 的值,测试 CPU 的单核和多核性能。

代码是开源的,可以移步到 GitHub 查看 → https://github.com/Lofanmi/GoHyperPi

与传统的性能测试软件 SuperPi(只能单核)、HyperPi(支持多核但不跨平台)相比,

GoHyperPi 能更充分利用多核处理器的并行计算能力,跨平台地进行性能测试,以更全面和准确地评估计算机的处理器性能。

为什么我要写这个软件呢?

1、Super PI 这个软件是单核的,而 HyperPi 支持多核但是又不跨平台;

2、Hyper PI 使用的人偏少,跑分数据不全面;

3、我组装了双路 E5-2690 v4,我想知道它的性能是怎么样的!!!

而 Go 语言有调度器有协程,写一个并行计算的程序,对我来说这不和呼吸一样简单?

嘿嘿,仅用 200 行代码不到~

它的原理是什么?

1、-n 指定圆周率小数点后的位数。我的测试都是计算圆周率 10 万位;

2、-proc 并行数量,默认程序自动获取 CPU 的核心数量(超线程会当做真正的核心)。程序会启动一定数量的协程,计算圆周率,并测量时间;

3、-times 并行倍数。最终的跑分结果为小数点第几位每秒,倍数越高得分越高,默认 2 倍。

废话不多说,先看跑分!双路 E5-2690 v4 洋垃圾,28 核心 56 线程,单核跑分 1838.56,多核跑分 102608.14!

阅读全文

今天线上出现了一个很奇怪的问题,简单讲就是某个比较通用的服务反序列化 JSON 的时候,发现有些 int64 的 ID 解开之后不是预期的数字。

废话不多说!直接上代码!不看答案,你能知道输出什么吗?

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "sync"
    "time"
)

type Msg struct {
    DrId int `json:"drid"`
}

type Data struct {
    Msg interface{} `json:"msg"`
}

func main() {
    msg := Msg{DrId: 21041079142844926}
    data := Data{Msg: msg}
    str2, _ := json.Marshal(data)
    // 1. {"msg":{"drid":21041079142844926}}
    fmt.Println(string(str2))
    var data2 Data
    _ = json.Unmarshal(str2, &data2)
    // fmt.Println(data2)
    str3, _ := json.Marshal(data2)
    // 2. ?
    fmt.Println(string(str3))
}

阅读全文

五一长假,大家都出去玩了。

独自一人在家闲着没事,心血来潮开撸日志查询系统——Gobana(Gobana = Golang + Kibana)!

是的,它使用 Go 语言开发,我希望可以替代日常使用的 Kibana!

Kibana 其实有挺多缺点,简单的日志查询写语句还是比较简单的,但是对于更多关键词,你需要写括号 (),或者是逻辑运算符 ANDOR

仔细想想,它其实并不是必须的:

因为,大部分情况下,我们查日志

都是需要命中某些关键词,或者是排除某些关键词

所以如果提供输入框,约定好查询的格式,我想就可以节省很多时间了!

欢迎参观,我会抽空开发,项目地址:https://github.com/Lofanmi/gobana/

6 月啦,补充一张图片上来~

Gobana

规划中的功能:

  • 支持 Elasticsearch
  • 支持阿里云 SLS 查询
  • 支持 Kibana-Proxy 工作模式(如果运维同学没有 Elasticsearch 地址,只提供 Kibana 的权限的话)【首创!!!】
  • 支持图表展示
  • 按照业务归类常用的查询语句
  • 内嵌 Lua 解析引擎,理论上支持任意类型的日志!【首创!!!】

预计 6 月份发初版,敬请期待吧。

我,又造了个轮子~!

ryHash - 速度飞快的文件哈希工具!支持 CRC / MD5 / SHA / FNV 算法!

本程序使用 Go 语言 + GoVCL 编写,原生跨平台 GUI 界面,非常小巧!

利用 Go 语言天生的并发优势,极大提升文件哈希计算速度!

屏幕截图

提供计算进度条:

计算完毕:

阅读全文