• golang 中 int 和 int32 的运行速度比较


    运行环境

    # systeminfo
    OS 名称:          Microsoft Windows 10 企业版 LTSC
    OS 版本:          10.0.17763 暂缺 Build 17763
    系统类型:         x64-based PC
    处理器:           安装了 1 个处理器。
                      [01]: Intel64 Family 6 Model 78 Stepping 3 GenuineIntel ~2607 Mhz
    BIOS 版本:        LENOVO N1CET43W (1.11 ), 2016-04-14
    Windows 目录:     C:Windows
    系统目录:         C:Windowssystem32
    启动设备:         DeviceHarddiskVolume1
    系统区域设置:     zh-cn;中文(中国)
    输入法区域设置:   zh-cn;中文(中国)
    时区:             (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
    物理内存总量:     19,891 MB
    可用的物理内存:   12,530 MB
    虚拟内存: 最大值: 19,923 MB
    虚拟内存: 可用:   11,891 MB
    虚拟内存: 使用中: 8,032 MB
    #  go version
    go version go1.16.3 windows/amd64
    

    源码

    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func main() {
    	start := time.Now()
    	for _tick := 1; _tick<=10; _tick++ {
    		var sum uint32 = 0
    		var i uint32 = 0
    		for i=0; i<1000000000; i++{
    			sum += i
    		}
    	}
    
    	fmt.Printf("Spend time: %s", time.Since(start))
    }
    

    使用 uint32 执行 5 次,平均耗时:3.1679441s
    使用 int 执行 5 次,平均耗时:6.37897652s

    其他

    某教程里面这样说:

    大多数情况下,我们只需要 int 一种整型即可,它可以用于循环计数器(for 循环中控制循环次数的变量)、数组和切片的索引,以及任何通用目的的整型运算符,通常 int 类型的处理速度也是最快的。

    不严谨

    使用上,int 更方便没什么问题,但 int 肯定不是最快的


    Hi, Eric
  • 相关阅读:
    WSGIRequest对象 和querydict对象
    限制请求method及页面重定向
    ORM模型里连接数据库常用方法和QuerySet API
    orm模型(关于时区时间)
    spring mvc 前后端数据交互方式(整理)
    java 国际化(转载)
    spring 基础学习笔记
    (转载)java nio 原理解析
    collection 所有集合的接口。
    java.lang.String类
  • 原文地址:https://www.cnblogs.com/hi-eric/p/14721024.html
Copyright © 2020-2023  润新知