perf: 调整 server.WithBufferSize 默认值
This commit is contained in:
parent
bdeaa5aeb3
commit
1ad657799a
|
@ -160,12 +160,12 @@ func WithWebsocketMessageType(messageTypes ...int) Option {
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithMessageBufferSize 通过特定的消息缓冲池大小运行服务器
|
// WithMessageBufferSize 通过特定的消息缓冲池大小运行服务器
|
||||||
// - 默认大小为 4096 * 1024
|
// - 默认大小为 1024
|
||||||
// - 消息数量超出这个值的时候,消息处理将会造成更大的开销(频繁创建新的结构体),同时服务器将输出警告内容
|
// - 消息数量超出这个值的时候,消息处理将会造成更大的开销(频繁创建新的结构体),同时服务器将输出警告内容
|
||||||
func WithMessageBufferSize(size int) Option {
|
func WithMessageBufferSize(size int) Option {
|
||||||
return func(srv *Server) {
|
return func(srv *Server) {
|
||||||
if size <= 0 {
|
if size <= 0 {
|
||||||
return
|
size = 1024
|
||||||
}
|
}
|
||||||
srv.messagePoolSize = size
|
srv.messagePoolSize = size
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,12 +29,13 @@ import (
|
||||||
// New 根据特定网络类型创建一个服务器
|
// New 根据特定网络类型创建一个服务器
|
||||||
func New(network Network, options ...Option) *Server {
|
func New(network Network, options ...Option) *Server {
|
||||||
server := &Server{
|
server := &Server{
|
||||||
event: &event{},
|
event: &event{},
|
||||||
runtime: &runtime{},
|
runtime: &runtime{},
|
||||||
option: &option{},
|
option: &option{},
|
||||||
network: network,
|
network: network,
|
||||||
closeChannel: make(chan struct{}, 1),
|
closeChannel: make(chan struct{}, 1),
|
||||||
systemSignal: make(chan os.Signal, 1),
|
systemSignal: make(chan os.Signal, 1),
|
||||||
|
messagePoolSize: 1024,
|
||||||
}
|
}
|
||||||
server.event.Server = server
|
server.event.Server = server
|
||||||
|
|
||||||
|
@ -122,9 +123,6 @@ func (slf *Server) Run(addr string) error {
|
||||||
slf.addr = addr
|
slf.addr = addr
|
||||||
var protoAddr = fmt.Sprintf("%s://%s", slf.network, slf.addr)
|
var protoAddr = fmt.Sprintf("%s://%s", slf.network, slf.addr)
|
||||||
var connectionInitHandle = func(callback func()) {
|
var connectionInitHandle = func(callback func()) {
|
||||||
if slf.messagePoolSize <= 0 {
|
|
||||||
slf.messagePoolSize = 100
|
|
||||||
}
|
|
||||||
slf.messagePool = synchronization.NewPool[*Message](slf.messagePoolSize,
|
slf.messagePool = synchronization.NewPool[*Message](slf.messagePoolSize,
|
||||||
func() *Message {
|
func() *Message {
|
||||||
return &Message{}
|
return &Message{}
|
||||||
|
|
Loading…
Reference in New Issue