美文网首页Golang进阶
【Golang】二进制这次可能会伤了你的心

【Golang】二进制这次可能会伤了你的心

作者: qishuai | 来源:发表于2017-11-10 23:08 被阅读82次

一提到二进制,我们通常认为他的运算速度应该会很快,因为更接近于底层;那么今天我们就来做一个测试,这次二进制可能要摔跟头了!

争端是这样的:判断一个数值的奇偶性,二进制运算快还是求余运算快(一篇CSDN的博客的结论是二进制运算会快的多)

那么让我们来写一个基准测试:

package test

import (
    "testing"
)

func BenchmarkEr(t *testing.B) {
    var n uint64 = 1 << 63

    t.ResetTimer()

    for i := 0; i < t.N; i++ {
        if n&1 == 1 {

        }
    }
}

func BenchmarkYu(t *testing.B) {
    var n uint64 = 1 << 63

    t.ResetTimer()

    for i := 0; i < t.N; i++ {
        if n%2 == 0 {

        }
    }
}

结果如下(说明这两种算法在效率上根本没有什么差别):


image.png

结论:二进制当然有其优势,单并不是所有的二进制运算都是高效率的;这里除了证明这样的结论,更重要的是,在coding时善于做测试,养成好习惯。

相关文章

  • 【Golang】二进制这次可能会伤了你的心

    一提到二进制,我们通常认为他的运算速度应该会很快,因为更接近于底层;那么今天我们就来做一个测试,这次二进制可能要摔...

  • 无伤

    廖廖数语,伤了你的心; 无伤无伤,无意伤了你的心; 单纯无心...

  • 不易

    她用了力气,伤了心,伤了腿,伤了嘴,你还想要如何?

  • 带着破碎的心爱你

    你伤了我的心 我不能释怀 但是我还是要爱你 你伤了我的心 我不会忘记 但是我选择宽容 你伤了我的心 为什么我只记得...

  • CentOS 6、7 安装 Golang

    CentOS 6、7 安装 Golang 方法一:使用二进制文件安装 (推荐) 1、下载二进制文件: wget h...

  • CentOS 6、7 安装 Golang

    下载二进制文件: wget https://storage.googleapis.com/golang/go1.7...

  • golang.org下载官方库

    https://golang.org是golang的官方网站,有时候我们写项目时可能会用到golang.org上的...

  • 知识分享之Golang——使用embed包实现静态资源打包至二进

    知识分享之Golang——使用embed包实现静态资源打包至二进制文件中 背景 知识分享之Golang篇是我在日常...

  • 成熟男人的26条

    1.打什么都不要打女人。打了,你就什么理由都没有了。 2.伤什么都别伤女人的心。伤了一个女人的心,你身边可能会有很...

  • 让沟通充满爱—《非暴力沟通》有感

    俗话说:“竹子和石头,可能会伤了你的骨头,但言语却能伤你的心。”由此可见,语言也有暴力,如果我们用善意的语言与人沟...

网友评论

    本文标题:【Golang】二进制这次可能会伤了你的心

    本文链接:https://www.haomeiwen.com/subject/sdgimxtx.html