Skip to content

Instantly share code, notes, and snippets.

@QuantumGhost
Created July 6, 2020 05:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save QuantumGhost/3f78315acac05a36b01733e4f91f9999 to your computer and use it in GitHub Desktop.
Save QuantumGhost/3f78315acac05a36b01733e4f91f9999 to your computer and use it in GitHub Desktop.
package temp
import (
"fmt"
"github.com/rs/zerolog"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"io/ioutil"
"testing"
)
func concurrency() []int {
return []int{1, 2, 4, 8}
}
func Benchmark_ZapStdout(b *testing.B) {
for _, N := range concurrency() {
encoder := zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())
core := zapcore.NewCore(encoder, zapcore.Lock(zapcore.AddSync(ioutil.Discard)), zap.InfoLevel)
logger := zap.New(core)
b.Run(fmt.Sprintf("size %d", N), func(b *testing.B) {
b.SetParallelism(N)
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
logger.Info("test")
}
})
})
}
}
func Benchmark_ZerologStdout(b *testing.B) {
for _, N := range concurrency() {
logger := zerolog.New(zerolog.SyncWriter(ioutil.Discard))
b.Run(fmt.Sprintf("size %d", N), func(b *testing.B) {
b.SetParallelism(N)
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
logger.Info().Msg("test")
}
})
})
}
}

Benchmark result:

Benchmark_ZapStdout
Benchmark_ZapStdout/size_1
Benchmark_ZapStdout/size_1-8         	 7128848	       241 ns/op
Benchmark_ZapStdout/size_2
Benchmark_ZapStdout/size_2-8         	 4318132	       239 ns/op
Benchmark_ZapStdout/size_4
Benchmark_ZapStdout/size_4-8         	 5186737	       205 ns/op
Benchmark_ZapStdout/size_8
Benchmark_ZapStdout/size_8-8         	 5835738	       228 ns/op
Benchmark_ZerologStdout
Benchmark_ZerologStdout/size_1
Benchmark_ZerologStdout/size_1-8     	 8203591	       138 ns/op
Benchmark_ZerologStdout/size_2
Benchmark_ZerologStdout/size_2-8     	 8892949	       132 ns/op
Benchmark_ZerologStdout/size_4
Benchmark_ZerologStdout/size_4-8     	 8186414	       147 ns/op
Benchmark_ZerologStdout/size_8
Benchmark_ZerologStdout/size_8-8     	 7504269	       155 ns/op
PASS

Benchmark of Log4j

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment