mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-06-26 09:25:23 +00:00
benchmark pipe
This commit is contained in:
parent
27772a75a7
commit
b41513f644
|
@ -120,7 +120,12 @@ func (p *pipe) writeMultiBufferInternal(mb buf.MultiBuffer) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
p.data, _ = buf.MergeMulti(p.data, mb)
|
if p.data == nil {
|
||||||
|
p.data = mb
|
||||||
|
} else {
|
||||||
|
p.data, _ = buf.MergeMulti(p.data, mb)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/task"
|
"v2ray.com/core/common/task"
|
||||||
. "v2ray.com/core/transport/pipe"
|
. "v2ray.com/core/transport/pipe"
|
||||||
|
@ -125,3 +126,18 @@ func TestInterfaces(t *testing.T) {
|
||||||
assert((*Reader)(nil), Implements, (*buf.Reader)(nil))
|
assert((*Reader)(nil), Implements, (*buf.Reader)(nil))
|
||||||
assert((*Reader)(nil), Implements, (*buf.TimeoutReader)(nil))
|
assert((*Reader)(nil), Implements, (*buf.TimeoutReader)(nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkPipeReadWrite(b *testing.B) {
|
||||||
|
reader, writer := New(WithoutSizeLimit())
|
||||||
|
a := buf.New()
|
||||||
|
a.Extend(buf.Size)
|
||||||
|
c := buf.MultiBuffer{a}
|
||||||
|
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
common.Must(writer.WriteMultiBuffer(c))
|
||||||
|
d, err := reader.ReadMultiBuffer()
|
||||||
|
common.Must(err)
|
||||||
|
c = d
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user