mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-01-01 23:15:21 -05:00
improve performance on copy
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
package buf_test
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"io"
|
||||
"math/rand"
|
||||
"testing"
|
||||
|
||||
"github.com/golang/mock/gomock"
|
||||
@@ -39,7 +40,7 @@ func TestWriteError(t *testing.T) {
|
||||
mockWriter := mocks.NewWriter(mockCtl)
|
||||
mockWriter.EXPECT().Write(gomock.Any()).Return(0, errors.New("error"))
|
||||
|
||||
err := buf.Copy(buf.NewReader(rand.Reader), buf.NewWriter(mockWriter))
|
||||
err := buf.Copy(buf.NewReader(rand.New(rand.NewSource(0))), buf.NewWriter(mockWriter))
|
||||
if err == nil {
|
||||
t.Fatal("expected error, but nil")
|
||||
}
|
||||
@@ -52,3 +53,13 @@ func TestWriteError(t *testing.T) {
|
||||
t.Fatal("unexpected error message: ", err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkCopy(b *testing.B) {
|
||||
reader := buf.NewReader(io.LimitReader(rand.New(rand.NewSource(0)), 1024*10))
|
||||
writer := buf.Discard
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
_ = buf.Copy(reader, writer)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user