perf: 调整 server.WithBufferSize 默认值

This commit is contained in:
kercylan98 2023-07-08 17:56:33 +08:00
parent bdeaa5aeb3
commit 1ad657799a
2 changed files with 9 additions and 11 deletions

View File

@ -160,12 +160,12 @@ func WithWebsocketMessageType(messageTypes ...int) Option {
}
// WithMessageBufferSize 通过特定的消息缓冲池大小运行服务器
// - 默认大小为 4096 * 1024
// - 默认大小为 1024
// - 消息数量超出这个值的时候,消息处理将会造成更大的开销(频繁创建新的结构体),同时服务器将输出警告内容
func WithMessageBufferSize(size int) Option {
return func(srv *Server) {
if size <= 0 {
return
size = 1024
}
srv.messagePoolSize = size
}

View File

@ -29,12 +29,13 @@ import (
// New 根据特定网络类型创建一个服务器
func New(network Network, options ...Option) *Server {
server := &Server{
event: &event{},
runtime: &runtime{},
option: &option{},
network: network,
closeChannel: make(chan struct{}, 1),
systemSignal: make(chan os.Signal, 1),
event: &event{},
runtime: &runtime{},
option: &option{},
network: network,
closeChannel: make(chan struct{}, 1),
systemSignal: make(chan os.Signal, 1),
messagePoolSize: 1024,
}
server.event.Server = server
@ -122,9 +123,6 @@ func (slf *Server) Run(addr string) error {
slf.addr = addr
var protoAddr = fmt.Sprintf("%s://%s", slf.network, slf.addr)
var connectionInitHandle = func(callback func()) {
if slf.messagePoolSize <= 0 {
slf.messagePoolSize = 100
}
slf.messagePool = synchronization.NewPool[*Message](slf.messagePoolSize,
func() *Message {
return &Message{}