1

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());
    }
}
4

2 に答える 2