gpt4 book ai didi

go - 如何测量压缩前后的字节大小和时间

转载 作者:IT王子 更新时间:2023-10-29 02:14:38 25 4
gpt4 key购买 nike

我想压缩一个字符串(它实际上是一个 JSON 响应)

var b bytes.Buffer
gz := gzip.NewWriter(&b)
if _, err := gz.Write([]byte("YourDataHere")); err != nil {
panic(err)
}

我如何轻松地输出压缩前后的字节大小,更重要的是我如何计算压缩和解压缩回字符串所需的时间?

最佳答案

您可以根据 Nipun Talukdar 的评论计算大小。

len([]byte("YourDataHere"))
b.Len()

并使用 time.Now()time.Since() 获取所用时间。

var b bytes.Buffer
input := []byte("YourDataHere")

fmt.Println("Input size : ", len(input))

gz := gzip.NewWriter(&b)


start := time.Now()

gz.Write(input)
if _, err := gz.Flush(); err != nil {
panic(err)
}


totalTime := time.Since(start)

fmt.Println("Compressed size : ", b.Len(), "\nTime taken : ", totalTime)
gz.Close()

同样的方法可以应用于解压缩。您还可以创建一个可以进行计时的支持函数。

func timer(startTime time.Time) {

totalTime := time.Since(startTime)
log.Println("Time taken : ",totalTime)

}

用法:延迟定时器(time.Now())在函数的开始。

关于go - 如何测量压缩前后的字节大小和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com