mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
优化网络内存池
This commit is contained in:
@@ -5,8 +5,7 @@ import (
|
||||
)
|
||||
|
||||
type INetMempool interface {
|
||||
MakeReadByteSlice(size int) []byte
|
||||
MakeWriteByteSlice(size int) []byte
|
||||
MakeByteSlice(size int) []byte
|
||||
ReleaseByteSlice(byteBuff []byte) bool
|
||||
}
|
||||
|
||||
@@ -81,14 +80,6 @@ func (areaPool *memAreaPool) MakeByteSlice(size int) []byte{
|
||||
return nil
|
||||
}
|
||||
|
||||
func (areaPool *memAreaPool) MakeReadByteSlice(size int) []byte{
|
||||
return areaPool.MakeByteSlice(size)
|
||||
}
|
||||
|
||||
func (areaPool *memAreaPool) MakeWriteByteSlice(size int) []byte{
|
||||
return areaPool.MakeByteSlice(size)
|
||||
}
|
||||
|
||||
func (areaPool *memAreaPool) ReleaseByteSlice(byteBuff []byte) bool {
|
||||
for i:=0;i<len(memAreaPoolList);i++{
|
||||
if cap(byteBuff) <= memAreaPoolList[i].maxAreaValue {
|
||||
|
||||
@@ -100,8 +100,7 @@ func (p *MsgParser) Read(conn *TCPConn) ([]byte, error) {
|
||||
}
|
||||
|
||||
// data
|
||||
//msgData := make([]byte, msgLen)
|
||||
msgData := p.MakeReadByteSlice(int(msgLen))
|
||||
msgData := p.MakeByteSlice(int(msgLen))
|
||||
if _, err := io.ReadFull(conn, msgData[:msgLen]); err != nil {
|
||||
p.ReleaseByteSlice(msgData)
|
||||
return nil, err
|
||||
@@ -126,7 +125,7 @@ func (p *MsgParser) Write(conn *TCPConn, args ...[]byte) error {
|
||||
}
|
||||
|
||||
//msg := make([]byte, uint32(p.lenMsgLen)+msgLen)
|
||||
msg := p.MakeWriteByteSlice(p.lenMsgLen+int(msgLen))
|
||||
msg := p.MakeByteSlice(p.lenMsgLen+int(msgLen))
|
||||
// write len
|
||||
switch p.lenMsgLen {
|
||||
case 1:
|
||||
|
||||
Reference in New Issue
Block a user