服务器内存管理

迈克·杰克逊

我正在Windows上开发服务器。我的服务器使用IOCP套接字和一个数据库。通常的情况是用户连接并保持长时间连接。连接的用户可以从服务器请求一些数据。通常,请求与数据库访问关联。客户端请求消息的长度是可变的。邮件带有google protobuf数据包,并在每条邮件之前发送固定长度的标头。

关于内存管理,我可以做些什么,而不是使用通常的new / delete函数来加快服务器的速度?我现在唯一的想法是拥有一个头缓冲区池并重用它们,而不是经常分配/取消分配它们。您如何看待每个用户的单独堆,因此在断开用户连接时,我可以一次删除所有用户数据,而不必使用大量的delete调用?有关此主题的任何技巧或窍门,不胜感激。

谢谢。

伦·霍尔盖特

缓冲区池是一个好主意,我倾向于拥有一个“缓冲区分配器”对象,所有连接共享该对象,并且可以为I / O目的分配固定大小的缓冲区。最好在连接级别进行池化(即,每个套接字都有一个较小的池以供重用),因为这样可以减少共享分配器上的交叉连接争用。

每个连接一个堆似乎是解决该问题的重量级解决方案。

我有一些代码可以从此处下载,以演示共享缓冲区分配器方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么是服务器内存?

来自分类Dev

.NET应用程序上的终端服务服务器内存管理

来自分类Dev

Linux服务器内存不足

来自分类Dev

ubuntu 14.04服务器内存问题

来自分类Dev

Ruby生产服务器内存泄漏

来自分类Dev

OSB 服务器内存不足

来自分类Dev

易于使用的Git服务器管理

来自分类Dev

Go Web服务器的流程管理

来自分类Dev

Zookeeper管理服务器端口

来自分类Dev

易于使用的Git服务器管理

来自分类Dev

管理服务器应用程序

来自分类Dev

管理硒服务器安装/配置

来自分类Dev

GForge AS服务器管理和管理员

来自分类Dev

如何跨多个服务器/工作器管理WebSocket

来自分类Dev

OpenVPN访问服务器和网络管理器

来自分类Dev

ubuntu服务器和网络管理器

来自分类Dev

我的世界服务器管理器

来自分类Dev

Spring Boot与Web服务器内存消耗

来自分类Dev

服务器上具有更多内存的Pandas MemoryError

来自分类Dev

运行Apache Thrift服务器的内存泄漏

来自分类Dev

在Node.js服务器上的内存存储中

来自分类Dev

mongo db服务器的内存使用问题

来自分类Dev

在RStudio服务器中共享内存数据

来自分类Dev

来自远程服务器的内存缓存无法保存数据

来自分类Dev

在Linux服务器中为Apache分配内存

来自分类Dev

java服务器与码头内存泄漏问题

来自分类Dev

PHP内置Web服务器是否有内存限制?

来自分类Dev

如何从Blazor服务器端下载内存文件

来自分类Dev

Node.js服务器空闲数组内存分配