В течение нескольких дней, может быть, недель я искал утечку памяти в моем приложении. Я не нашел, где это может быть, пока не нашел это:
https://bugs.kde.org/show_bug.cgi?id=292217
После проверки всего я обнаружил, что QProgressBar
занимает слишком много памяти каждый раз, когда Qt отображает статус индикатора выполнения. В моем случае я также менял размер индикатора выполнения, поэтому Qt запоминает все больше и больше читателей.
Это может занимать около 20 МБ в день, и, поскольку мое приложение является приложением 24/7, с этим невозможно жить.
Мое решение состояло в том, чтобы индикатор выполнения всегда был одинакового размера, но мой клиент хочет QProgressBar
меняет размер.
Кто-нибудь знает, как сохранить это использование памяти в некоторых пределах?
Приветствия.
система:
Win 7 Aero
Qt 5.0.2
Visual Studio 2010
Повышение 1,52
Нет MFC, нет ATL
Некоторые возможные обходные пути:
1) Обновление до новой версии Qt, в которой эта ошибка исправлена (если она существует)
2) Используйте другой QStyle, который не содержит эту ошибку (как предложено CmdrMoozy)
3) Скомпилируйте Qt из исходного кода и исправьте исходный код Qt, чтобы исправить эту ошибку; распространяйте свою исправленную версию Qt
4) Напишите свой собственный класс индикатора выполнения (то есть подкласс QWidget и переопределите paintEvent ()) и используйте его вместо QProgressBar.
Других решений пока нет …