yamux bench test: open sub conn

This commit is contained in:
Sergey Cherepanov 2023-06-23 18:32:13 +02:00
parent f0ffc9b7bf
commit f943991bc0
No known key found for this signature in database
GPG Key ID: 87F8EDE8FBDF637C

View File

@ -73,11 +73,11 @@ func TestYamuxTransport_Dial(t *testing.T) {
// no deadline - 69100 rps // no deadline - 69100 rps
// common write deadline - 66700 rps // common write deadline - 66700 rps
// subconn write deadline - 67100 rps // subconn write deadline - 67100 rps
func TestWriteBench(t *testing.T) { func TestWriteBenchReuse(t *testing.T) {
t.Skip() t.Skip()
var ( var (
numSubConn = 10 numSubConn = 10
numWrites = 100000 numWrites = 10000
) )
fxS := newFixture(t) fxS := newFixture(t)
@ -128,6 +128,63 @@ func TestWriteBench(t *testing.T) {
t.Logf("%.2f req per sec", float64(numWrites*numSubConn)/dur.Seconds()) t.Logf("%.2f req per sec", float64(numWrites*numSubConn)/dur.Seconds())
} }
func TestWriteBenchNew(t *testing.T) {
t.Skip()
var (
numSubConn = 10
numWrites = 10000
)
fxS := newFixture(t)
defer fxS.finish(t)
fxC := newFixture(t)
defer fxC.finish(t)
mcC, err := fxC.Dial(ctx, fxS.addr)
require.NoError(t, err)
mcS := <-fxS.accepter.mcs
go func() {
for i := 0; i < numSubConn; i++ {
require.NoError(t, err)
go func() {
var b = make([]byte, 1024)
for {
conn, _ := mcS.Accept()
n, _ := conn.Read(b)
if n > 0 {
conn.Write(b[:n])
} else {
_ = conn.Close()
break
}
conn.Close()
}
}()
}
}()
var wg sync.WaitGroup
wg.Add(numSubConn)
st := time.Now()
for i := 0; i < numSubConn; i++ {
go func() {
defer wg.Done()
for j := 0; j < numWrites; j++ {
sc, err := mcC.Open(ctx)
require.NoError(t, err)
var b = []byte("some data some data some data some data some data some data some data some data some data")
sc.Write(b)
sc.Read(b)
sc.Close()
}
}()
}
wg.Wait()
dur := time.Since(st)
t.Logf("%.2f req per sec", float64(numWrites*numSubConn)/dur.Seconds())
}
type fixture struct { type fixture struct {
*yamuxTransport *yamuxTransport
a *app.App a *app.App