【十年脑血栓系列】负数转正数 abs和0- (负数)谁的效率更高

Aman
评论:0 阅读:1483
时间:2022-12-5 01:54:10 分类: 随笔

本人处女座,写代码极其恶心,不是恶心别人,而是恶心自己。不知道啥时候脑子就抽了,有些没有意义的问题非要弄个明白,好多次都睡下了,凌晨两三点突然想到某个问题,然后起床开电脑,测试。属实给我恶心坏了。he tui ~

就在刚在,用golang写brainfuck加解密的时候,脑子抽了一下。
就因为在取绝对值时产生了一个恶心的想法:

问下面两种写法哪种更好,运算效率更快:

1、b=math.Abs(float64(diff))
2、b=0-diff

不严谨的答案:都一样
严禁的答案:没有(自己测)

测试脚本

func t() {
    start := time.Now() // 获取当前时间
    for i := -1.0; i > -1000000000; i-- {
        _ = 0 - i
    }
    elapsed := time.Since(start)
    fmt.Println("t函数执行完成耗时:", elapsed)
}
func t2() {
    start := time.Now() 
    for i := -1.0; i > -1000000000; i-- {
        _ = math.Abs(i)
    }
    elapsed := time.Since(start)
    fmt.Println("t2函数执行完成耗时:", elapsed)
}
//t函数执行完成耗时: 956.5709ms
//t2函数执行完成耗时: 952.8599ms

//t函数执行完成耗时: 953.1113ms
//t2函数执行完成耗时: 959.0932ms

//t2函数执行完成耗时: 952.184ms
//t函数执行完成耗时: 950.48ms

//t2函数执行完成耗时: 951.7409ms
//t函数执行完成耗时: 950.9821ms

...
...

测了多次 耗时互有高低,但差别都不大
然后安心的用0-diff写法(原因就是书写效率高),继续耕耘,美美哒~

标签: golang

Powered by emlog pro © 主题Aman 豫ICP备16010520号-1