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 (
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,11 +167,13 @@ func tapRead(ifce *water.Interface, cSess *sessdata.ConnSession) {
|
||||||
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue