优化gc性能

This commit is contained in:
bjdgyc 2021-05-31 16:20:36 +08:00
parent b704e089b6
commit ab58f21b3b
1 changed files with 17 additions and 7 deletions

View File

@ -89,6 +89,7 @@ func tapWrite(ifce *water.Interface, cSess *sessdata.ConnSession) {
var ( var (
err error err error
payload *sessdata.Payload payload *sessdata.Payload
frame ethernet.Frame
) )
for { for {
@ -98,12 +99,14 @@ func tapWrite(ifce *water.Interface, cSess *sessdata.ConnSession) {
return return
} }
var frame ethernet.Frame // var frame ethernet.Frame
frame = getByteFull()
switch payload.LType { switch payload.LType {
default: default:
// log.Println(payload) // log.Println(payload)
case sessdata.LTypeEthernet: case sessdata.LTypeEthernet:
frame = payload.Data copy(frame, payload.Data)
frame = frame[:len(payload.Data)]
case sessdata.LTypeIPData: // 需要转换成 Ethernet 数据 case sessdata.LTypeIPData: // 需要转换成 Ethernet 数据
data := payload.Data data := payload.Data
@ -148,6 +151,9 @@ func tapWrite(ifce *water.Interface, cSess *sessdata.ConnSession) {
base.Error("tap Write err", err) base.Error("tap Write err", err)
return return
} }
putByte(frame)
putPayload(payload)
} }
} }
@ -158,14 +164,16 @@ func tapRead(ifce *water.Interface, cSess *sessdata.ConnSession) {
}() }()
var ( var (
err error err error
n int n int
buf []byte buf []byte
frame ethernet.Frame
) )
for { for {
var frame ethernet.Frame // var frame ethernet.Frame
frame.Resize(BufferSize) // frame.Resize(BufferSize)
frame = getByteFull()
n, err = ifce.Read(frame) n, err = ifce.Read(frame)
if err != nil { if err != nil {
base.Error("tap Read err", n, err) base.Error("tap Read err", n, err)
@ -237,5 +245,7 @@ func tapRead(ifce *water.Interface, cSess *sessdata.ConnSession) {
} }
} }
putByte(frame)
} }
} }