mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	调整Brotli压缩参数
This commit is contained in:
		
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							@@ -8,7 +8,7 @@ replace (
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/TeaOSLab/EdgeCommon v0.0.0-00010101000000-000000000000
 | 
			
		||||
	github.com/andybalholm/brotli v1.0.3
 | 
			
		||||
	github.com/andybalholm/brotli v1.0.4
 | 
			
		||||
	github.com/biessek/golang-ico v0.0.0-20180326222316-d348d9ea4670
 | 
			
		||||
	github.com/cespare/xxhash v1.1.0
 | 
			
		||||
	github.com/chai2010/webp v1.1.0 // indirect
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							@@ -6,8 +6,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
 | 
			
		||||
github.com/DataDog/sketches-go v0.0.0-20190923095040-43f19ad77ff7/go.mod h1:Q5DbzQ+3AkgGwymQO7aZFNP7ns2lZKGtvRBzRXfdi60=
 | 
			
		||||
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
 | 
			
		||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 | 
			
		||||
github.com/andybalholm/brotli v1.0.3 h1:fpcw+r1N1h0Poc1F/pHbW40cUm/lMEQslZtCkBQ0UnM=
 | 
			
		||||
github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
 | 
			
		||||
github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
 | 
			
		||||
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
 | 
			
		||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 | 
			
		||||
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
 | 
			
		||||
github.com/biessek/golang-ico v0.0.0-20180326222316-d348d9ea4670 h1:FQPKKjDhzG0T4ew6dm6MGrXb4PRAi8ZmTuYuxcF62BM=
 | 
			
		||||
 
 | 
			
		||||
@@ -19,8 +19,11 @@ func NewBrotliWriter(writer io.Writer, level int) (Writer, error) {
 | 
			
		||||
		level = brotli.BestCompression
 | 
			
		||||
	}
 | 
			
		||||
	return &BrotliWriter{
 | 
			
		||||
		writer: brotli.NewWriterLevel(writer, level),
 | 
			
		||||
		level:  level,
 | 
			
		||||
		writer: brotli.NewWriterOptions(writer, brotli.WriterOptions{
 | 
			
		||||
			Quality: level,
 | 
			
		||||
			LGWin:   13, // TODO 在全局设置里可以设置此值
 | 
			
		||||
		}),
 | 
			
		||||
		level: level,
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										90
									
								
								internal/compressions/writer_brotli_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								internal/compressions/writer_brotli_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
			
		||||
 | 
			
		||||
package compressions_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeNode/internal/compressions"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func BenchmarkBrotliWriter_Write(b *testing.B) {
 | 
			
		||||
	var data = []byte(strings.Repeat("A", 1024))
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < b.N; i++ {
 | 
			
		||||
		var buf = &bytes.Buffer{}
 | 
			
		||||
		writer, err := compressions.NewBrotliWriter(buf, 5)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		for j := 0; j < 100; j++ {
 | 
			
		||||
			_, err = writer.Write(data)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/**err = writer.Flush()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}**/
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		_ = writer.Close()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func BenchmarkBrotliWriter_Write_Small(b *testing.B) {
 | 
			
		||||
	var data = []byte(strings.Repeat("A", 16))
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < b.N; i++ {
 | 
			
		||||
		var buf = &bytes.Buffer{}
 | 
			
		||||
		writer, err := compressions.NewBrotliWriter(buf, 5)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		for j := 0; j < 100; j++ {
 | 
			
		||||
			_, err = writer.Write(data)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/**err = writer.Flush()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}**/
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		_ = writer.Close()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func BenchmarkBrotliWriter_Write_Large(b *testing.B) {
 | 
			
		||||
	var data = []byte(strings.Repeat("A", 4096))
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < b.N; i++ {
 | 
			
		||||
		var buf = &bytes.Buffer{}
 | 
			
		||||
		writer, err := compressions.NewBrotliWriter(buf, 5)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		for j := 0; j < 100; j++ {
 | 
			
		||||
			_, err = writer.Write(data)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/**err = writer.Flush()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}**/
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		_ = writer.Close()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								internal/compressions/writer_gzip_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								internal/compressions/writer_gzip_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
			
		||||
 | 
			
		||||
package compressions_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeNode/internal/compressions"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func BenchmarkGzipWriter_Write(b *testing.B) {
 | 
			
		||||
	var data = []byte(strings.Repeat("A", 1024))
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < b.N; i++ {
 | 
			
		||||
		var buf = &bytes.Buffer{}
 | 
			
		||||
		writer, err := compressions.NewGzipWriter(buf, 5)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			b.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		for j := 0; j < 100; j++ {
 | 
			
		||||
			_, err = writer.Write(data)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/**err = writer.Flush()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				b.Fatal(err)
 | 
			
		||||
			}**/
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		_ = writer.Close()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user