0

何日も、何週間もの間、アプリケーションのメモリ リークを探していました。これを見つけるまで、どこにあるのかわかりませんでした:

https://bugs.kde.org/show_bug.cgi?id=292217

すべてをチェックした後、QProgressBarQt がプログレス バーのステータスをレンダリングするたびにメモリが多すぎることがわかりました。私の場合、進行状況バーのサイズも変更していたので、Qt がより多くのリーダーを記憶できるようになりました。

1 日あたり約 20 MB かかることがあり、私のアプリケーションは 24 時間年中無休のアプリケーションであるため、これに耐えることはできません。

私の解決策は、進行状況バーを常に同じサイズに保つことでしたが、クライアントQProgressBarはサイズの変更を望んでいます。

このメモリ使用量を制限内に保つ方法を知っている人はいますか?

乾杯。

システム:

Win 7 Aero Qt 5.0.2 Visual Studio 2010 Boost 1.52 MFC なし、ATL なし

4

1 に答える 1

1

いくつかの可能な回避策:

1) このバグが修正された新しいバージョンの Qt にアップグレードします (存在する場合)。

2) このバグを含まない別の QStyle を使用する (CmdrMoozy の提案による)

3) ソースから Qt をコンパイルし、Qt ソースにパッチを適用してこのバグを修正します。パッチを適用したバージョンの Qt を配布します

4) 独自のプログレス バー クラス (つまり、QWidget をサブクラス化し、paintEvent() をオーバーライドする) を作成し、QProgressBar の代わりにそれを使用します。

于 2013-12-19T03:03:56.807 に答える