mirror of https://github.com/bjdgyc/anylink.git
优化gc性能
This commit is contained in:
parent
b704e089b6
commit
ab58f21b3b
|
@ -89,6 +89,7 @@ func tapWrite(ifce *water.Interface, cSess *sessdata.ConnSession) {
|
|||
var (
|
||||
err error
|
||||
payload *sessdata.Payload
|
||||
frame ethernet.Frame
|
||||
)
|
||||
|
||||
for {
|
||||
|
@ -98,12 +99,14 @@ func tapWrite(ifce *water.Interface, cSess *sessdata.ConnSession) {
|
|||
return
|
||||
}
|
||||
|
||||
var frame ethernet.Frame
|
||||
// var frame ethernet.Frame
|
||||
frame = getByteFull()
|
||||
switch payload.LType {
|
||||
default:
|
||||
// log.Println(payload)
|
||||
case sessdata.LTypeEthernet:
|
||||
frame = payload.Data
|
||||
copy(frame, payload.Data)
|
||||
frame = frame[:len(payload.Data)]
|
||||
case sessdata.LTypeIPData: // 需要转换成 Ethernet 数据
|
||||
data := payload.Data
|
||||
|
||||
|
@ -148,6 +151,9 @@ func tapWrite(ifce *water.Interface, cSess *sessdata.ConnSession) {
|
|||
base.Error("tap Write err", err)
|
||||
return
|
||||
}
|
||||
|
||||
putByte(frame)
|
||||
putPayload(payload)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,11 +167,13 @@ func tapRead(ifce *water.Interface, cSess *sessdata.ConnSession) {
|
|||
err error
|
||||
n int
|
||||
buf []byte
|
||||
frame ethernet.Frame
|
||||
)
|
||||
|
||||
for {
|
||||
var frame ethernet.Frame
|
||||
frame.Resize(BufferSize)
|
||||
// var frame ethernet.Frame
|
||||
// frame.Resize(BufferSize)
|
||||
frame = getByteFull()
|
||||
n, err = ifce.Read(frame)
|
||||
if err != nil {
|
||||
base.Error("tap Read err", n, err)
|
||||
|
@ -237,5 +245,7 @@ func tapRead(ifce *water.Interface, cSess *sessdata.ConnSession) {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
putByte(frame)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue