QTcpServer と QTcpSockets を使用してクライアント サーバー アプリケーションをセットアップしていますが、巨大なメモリ リークが発生しているようです。簡単なテスト アプリケーションをセットアップしたばかりで、ループで 250,000,000 メッセージを送信した後、クライアントが 75 メガまで上昇するため、Qt のソケットの使用に問題があるのではないかと考えています。数百万のメッセージがある場合、クライアントで 300 MB 以上のメモリが使用されているようです。
メッセージを送信し続けると、メモリが増え続けるので、これは私には正しくないように思えます!
したがって、接続されたソケットで次のコードを指定すると、アプリが常にメモリ内で上昇すると予想する必要があります。このソケットを開いたままにしておくと、すぐにメモリ不足になります。何か不足していますか?
if (socket && socket->isOpen())
{
for(int i = 0; i < 25000000; ++i) {
QString str = "test";
socket->write(str.toStdString().c_str());
}
}