网络缓冲区中的数据是否显示在进程内存使用中?

时间:2017-11-20 17:32:12

标签: memory network-programming

我正在使用进程资源管理器查看我的一项服务的内存消耗,因为它抱怨“它似乎在泄漏内存”

当我的服务正在运行时,我会看到“私有字节”,并且肯定会无限期地以大约2MB /秒的速度上升。

在写了几个寻找泄漏的测试之后,我找不到。但是,我确实发现,如果我关闭注销,那么内存使用量就不会再攀升了。

我的理论是,该过程无法跟上通过网络发送给它的消息数量,同时还将它们全部记录到磁盘上。

我的问题:

1)消息是否会在“网络缓冲区”上不断积累?

1a)是什么决定了在我的服务调用recv来抓取它们之前可以排队的人数?

2)当进程中的消息排队时,进程是否会使用/似乎使用更多内存?

我在本机C ++中使用Windows 10和Server 2012 R2,boost :: ASIO(使用Winsock)。

1 个答案:

答案 0 :(得分:0)

如果你的意思是套接字接收缓冲区,它的大小是固定的,而不是进程地址空间的一部分。