首页 > 其他 > 详细

golang切片

时间:2021-07-03 22:14:16      阅读:34      评论:0      收藏:0      [点我收藏+]

golang切片

内存拷贝耗费时间

package main

import (
	"fmt"
	"time"
)

func kb()  {
	data := make([]byte, 0)
	l := 1024
	for i := 0 ; i < l;i++ {
		data = append(data, uint8(1))
	}

	data2 := make([]byte, l, l)

	t := time.Now()
	copy(data2, data)
	fmt.Println("KB数据耗费时间为: ", time.Since(t).String())
}

func mb()  {
	data := make([]byte, 0)
	l := 1024 * 1024
	for i := 0 ; i < l;i++ {
		data = append(data, uint8(1))
	}

	data2 := make([]byte, l, l)

	t := time.Now()
	copy(data2, data)
	fmt.Println("MB数据耗费时间为: ", time.Since(t).String())
}

func gb()  {
	data := make([]byte, 0)
	l := 1024 * 1024 * 1024
	for i := 0 ; i < l;i++ {
		data = append(data, uint8(1))
	}

	data2 := make([]byte, l, l)

	t := time.Now()
	copy(data2, data)
	fmt.Println("GB数据耗费时间为: ", time.Since(t).String())
}



func main() {
	kb()
	time.Sleep(time.Microsecond * 300)

	mb()
	time.Sleep(time.Microsecond * 300)

	gb()
	time.Sleep(time.Microsecond * 300)
}

测试结果

F:\code_me\github\evio-master\telnet\3>go run main.go
KB数据耗费时间为:  0s
MB数据耗费时间为:  516.3μs
GB数据耗费时间为:  400.2188ms

F:\code_me\github\evio-master\telnet\3>go run main.go
KB数据耗费时间为:  0s
MB数据耗费时间为:  0s
GB数据耗费时间为:  433.0305ms

F:\code_me\github\evio-master\telnet\3>go run main.go
KB数据耗费时间为:  0s
MB数据耗费时间为:  0s
GB数据耗费时间为:  379.715ms

F:\code_me\github\evio-master\telnet\3>go run main.go
KB数据耗费时间为:  0s
MB数据耗费时间为:  0s
GB数据耗费时间为:  377.2188ms

F:\code_me\github\evio-master\telnet\3>go run main.go
KB数据耗费时间为:  0s
MB数据耗费时间为:  521.6μs
GB数据耗费时间为:  123.0336ms

F:\code_me\github\evio-master\telnet\3>go run main.go
KB数据耗费时间为:  0s
MB数据耗费时间为:  1.0286ms
GB数据耗费时间为:  376.8729ms

啪的一下,很快啊

copy()函数

package main

import (
	"fmt"
)

func main() {
	data := make([]byte, 0)
	l := 10
	for i :=0; i < l;i++ {
		data = append(data, uint8(1))
	}

	tmm := []byte{uint8(2), uint8(3), uint8(3), uint8(3)}

	data = data[3:6]
	fmt.Println(len(data), cap(data))

	copy(data, tmm)
	fmt.Println(len(data), cap(data))
	fmt.Println(data)
}



## 输出
3 13
3 13
[2 3 3]

golang切片

原文:https://www.cnblogs.com/maomaomaoge/p/14967471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!