zoukankan      html  css  js  c++  java
  • 2.4 Buffer

    package main
    
    import (
    	"bytes"
    	"fmt"
    )
    
    func main() {
    	strings := []string{"This ", "is ", "even ",
    		"more ", "performant "}
    	buffer := bytes.Buffer{}
    	for _, val := range strings {
    		buffer.WriteString(val)
    	}
    
    	fmt.Println(buffer.String())
    }
    
    /*
    This is even more performant 
    
    */
    
    

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    
    	strings := []string{"This ", "is ", "even ",
    		"more ", "performant "}
    
    	bs := make([]byte, 100)
    	bl := 0
    
    	for _, val := range strings {
    		bl += copy(bs[bl:], []byte(val))
    	}
    
    	fmt.Println(string(bs[:]))
    
    }
    
    /*
    This is even more performant 
    
    */
    
    

    性能测试

    package bench
    
    import (
    	"bytes"
    	"testing"
    )
    
    const testString = "test"
    
    func BenchmarkConcat(b *testing.B) {
    	var str string
    	b.ResetTimer()
    	for n := 0; n < b.N; n++ {
    		str += testString
    	}
    	b.StopTimer()
    }
    
    func BenchmarkBuffer(b *testing.B) {
    	var buffer bytes.Buffer
    
    	b.ResetTimer()
    	for n := 0; n < b.N; n++ {
    		buffer.WriteString(testString)
    	}
    	b.StopTimer()
    }
    
    func BenchmarkCopy(b *testing.B) {
    	bs := make([]byte, b.N)
    	bl := 0
    
    	b.ResetTimer()
    	for n := 0; n < b.N; n++ {
    		bl += copy(bs[bl:], testString)
    	}
    	b.StopTimer()
    }
    
    
    

    go test -bench=.
    goos: darwin
    goarch: amd64
    pkg: go_web/bench
    BenchmarkConcat-8 500000 114962 ns/op
    BenchmarkBuffer-8 100000000 14.8 ns/op
    BenchmarkCopy-8 500000000 3.19 ns/op
    PASS
    ok go_web/bench 61.018s

  • 相关阅读:
    Apahe的安装报错信息:(OS 5)拒绝访问。 : AH00369: Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator?
    Linux上安装MySQL
    openssh
    脚本基础
    交换分区swap和日志系统
    Linux系统磁盘管理
    网络基础管理
    yum工具的使用
    Linux软件管理
    Linux控制服务和守护进程
  • 原文地址:https://www.cnblogs.com/zrdpy/p/8620469.html
Copyright © 2011-2022 走看看