perf: 调整 server.WithBufferSize 默认值
This commit is contained in:
parent
bdeaa5aeb3
commit
1ad657799a
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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{}
|
||||
|
|
Loading…
Reference in New Issue