File tree Expand file tree Collapse file tree 1 file changed +21
-1
lines changed
Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Original file line number Diff line number Diff line change 99 "github.com/database64128/shadowsocks-go/conn"
1010 "github.com/database64128/shadowsocks-go/netio"
1111 "github.com/database64128/shadowsocks-go/netiotest"
12+ "go.uber.org/zap"
1213 "go.uber.org/zap/zaptest"
1314)
1415
@@ -347,9 +348,28 @@ func BenchmarkStreamClientDialServerHandleStream(b *testing.B) {
347348 server := serverConfig .NewStreamServer ()
348349 server .ReplaceUserLookupMap (userLookupMap )
349350
350- netiotest .BenchmarkStreamClientDialServerHandle (b , newClient , server )
351+ netiotest .BenchmarkStreamClientDialServerHandle (b , newClient , newStreamServerClearSaltPool ( server ) )
351352 })
352353 }
353354 })
354355 }
355356}
357+
358+ // streamServerClearSaltPool wraps a [StreamServer] and clears the salt pool after handling a stream connection.
359+ // This is useful in benchmarks where the salt pool significantly affects the results.
360+ type streamServerClearSaltPool struct {
361+ * StreamServer
362+ }
363+
364+ func newStreamServerClearSaltPool (server * StreamServer ) * streamServerClearSaltPool {
365+ return & streamServerClearSaltPool {
366+ StreamServer : server ,
367+ }
368+ }
369+
370+ // HandleStream implements [netio.StreamServer.HandleStream].
371+ func (s * streamServerClearSaltPool ) HandleStream (rawRW netio.Conn , logger * zap.Logger ) (req netio.ConnRequest , err error ) {
372+ req , err = s .StreamServer .HandleStream (rawRW , logger )
373+ s .saltPool .Clear ()
374+ return req , err
375+ }
You can’t perform that action at this time.
0 commit comments