Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878

После перехода с Qt 5.7 на 5.8 появилась утечка памяти...

19.07.2017, 16:27. Показов 3223. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа которая отлично работает, но вот перешел с qt 5.7 на qt 5.8 и началась утечка памяти(код программы не изменялся), при чем сама утечка проявляется только на windows server 12 на windows 7,8 10 все отлично, по некоторым причинам не хочу пока возвращаться обратно переходить дальше, на данный момент интересует вопрос, как можно проследить где происходит утечка? явно где-то баг в самом qt
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.07.2017, 16:27
Ответы с готовыми решениями:

Утечка памяти после работы программы
Подскажите пожалуйста, какими методами можно определить утечку памяти? Например, где то не сделал нужное Free. Какая то программа есть...

Утечка памяти после установки обновления KB976902
Собственно svchost начал жрать по 1-2 гига оперативки. Если отключить службу обновления, то всё становится нормально. Попутал с названием....

Утечка памяти и вылет с ошибкой после запуска
Доброго времени суток. Кажется я облажался и мне нужна помощь. Код такой: //////////////////////////////////Заголовочные...

33
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
06.08.2017, 00:14  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Rius Посмотреть сообщение
Qt-шников, работающих на Windows Server 2012, намного меньше, чем даже C# .Net -чиков на линуксе.
ну это было раньше, на всех системах есть утечка, просто сразу не заметно, у сервера интернет гораздо быстрее и он обрабатывает запросы в 10 раз быстрее, а обычный комп медленнее и там так сразу не увидишь, нужно мин 5-10 подождать

Добавлено через 17 минут
вот тут что-то похожее обсуждалось
https://bugreports.qt.io/browse/QTBUG-53798
кто мне может объяснить что тимур советует в последнем комментарии, я пробовал применить все что он предлагает, и QCoreApplication:rocessEvents(); и QThread::currentThread()->eventDispatcher()->processEvents(QEventLoop::AllEvents);
все до лампочки
0
Эксперт .NET
 Аватар для Rius
13831 / 7904 / 1708
Регистрация: 25.05.2015
Сообщений: 24,004
Записей в блоге: 14
06.08.2017, 00:41
Quite a lot of functions in QSslSocket at the moment rely on Qt:QueuedConnection (== working event loop). Without the running event loop posted events are queued by the app and thus memory usage is only growing. The solution is either to use QEventLoop/normal application/QThread etc. or periodically clear/process events.
Примерно:
Большое число функций в QSslSocket в настоящее время полагаются на Qt:QueuedConnection, т.е. работающий цикл сообщений. Без запущенного цикла сообщений, отправляемые события попадают в очередь сообщений приложения и таким образом потребляемая память только растёт.
Решение одно из двух: использовать QEventLoop/нормальное приложение/QThread и т.п., либо периодически очищать/обрабатывать очередь сообщений.
Qt::QueuedConnection это последний аргумент для QObject::connect(), который там по умолчанию равен Qt::AutoConnection.
Qt::QueuedConnection требуется, когда объекты отправителя и получателя находятся в разных потоках. Если поток с объектом-получателем имеет свой цикл сообщений, то сообщение помещается в эту очередь, а когда придёт время вытаскивается из него и отдаётся получателю.
0
Эксперт .NET
 Аватар для Rius
13831 / 7904 / 1708
Регистрация: 25.05.2015
Сообщений: 24,004
Записей в блоге: 14
06.08.2017, 00:43
Гонял ваш код из 19 поста 15 минут, по https, но со своего сайта. Никаких ужасных утечек в диспетчере задач Windows 10 не видно.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
06.08.2017, 00:45  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Гонял ваш код из 19 поста 15 минут, по https, но со своего сайта. Никаких ужасных утечек в менеджере процессов не видно.
код который в архиве? и сколько за 15 минут утекло мб?
0
Эксперт .NET
 Аватар для Rius
13831 / 7904 / 1708
Регистрация: 25.05.2015
Сообщений: 24,004
Записей в блоге: 14
06.08.2017, 00:47
Не, вот этот:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <QCoreApplication>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
 
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    QUrl url("https://сайт");
 
    QNetworkRequest request(url);
    QByteArray content;
    QEventLoop loop;
    QNetworkReply* reply;
    QNetworkAccessManager*manager = new QNetworkAccessManager();
 
    while(true){
        reply=  manager->get(request);
        QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
        loop.exec();
 
        if (reply->error() == QNetworkReply::NoError)
        {
            content= reply->readAll();
        }
        content.clear();
        reply->deleteLater();
    }
    delete manager;
 
    return a.exec();
}
Нисколько не утекло. Болталось около 13МБ туды-сюды.
Какой порядок значений вообще у вас?
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
06.08.2017, 00:50  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Нисколько не утекло. Болталось около 13МБ туды-сюды.
Какой порядок значений вообще у вас?

этот меня не интересует, мне нужны сокеты, там архив прекриплен, у меня на сервере примерно за минуту улетает 1 мб, на обычном компе(windows 7) примерно за 10 минут - мегабайт
0
Эксперт .NET
 Аватар для Rius
13831 / 7904 / 1708
Регистрация: 25.05.2015
Сообщений: 24,004
Записей в блоге: 14
06.08.2017, 00:50
До этого ещё было минут 10 по http, не https, тоже без утечек.

Цитата Сообщение от mh-coder Посмотреть сообщение
этот меня не интересует, мне нужны сокеты,
Цитата Сообщение от mh-coder Посмотреть сообщение
Сделал как советовал один клоун через QNetworkAccessManager, память уходит еще быстрее чем через сокеты
Утечек на QNetworkAccessManager не обнаружил.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
06.08.2017, 01:04  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
До этого ещё было минут 10 по http, не https, тоже без утечек.
еще уточню один момент, я писал о том что почему-то в дебаг режиме все нормально, память растет только в релиз версии
0
Эксперт .NET
 Аватар для Rius
13831 / 7904 / 1708
Регистрация: 25.05.2015
Сообщений: 24,004
Записей в блоге: 14
06.08.2017, 01:16
Да, видел. Я в релизе запускал. На Qt 5.9.0.

Добавлено через 3 минуты
А ваш архив да, убегает, похоже.
1
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
06.08.2017, 10:10  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
А ваш архив да, убегает, похоже.
есть какие ни будь догадки по поводу как и почему убегает, Тимур из багтрекинга походу совсем упоротый и не видит никаких утечек
0
Эксперт .NET
 Аватар для Rius
13831 / 7904 / 1708
Регистрация: 25.05.2015
Сообщений: 24,004
Записей в блоге: 14
06.08.2017, 10:35
Прописал Qt::QueuedConnection на случай избавления от возможной рекурсии, не помогло.
Миниатюры
После перехода с Qt 5.7 на 5.8 появилась утечка памяти...   После перехода с Qt 5.7 на 5.8 появилась утечка памяти...   После перехода с Qt 5.7 на 5.8 появилась утечка памяти...  

После перехода с Qt 5.7 на 5.8 появилась утечка памяти...   После перехода с Qt 5.7 на 5.8 появилась утечка памяти...  
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
06.08.2017, 20:51  [ТС]
тему в топку, написал свои сокеты на winapi - результат, утечки нет, потребляет в 2 раза меньше процессора, время на подключение и получение данных сократилось в 3 раза, чет qt только огорчает в последнее время, а такие надежды подавал...
0
08.08.2017, 11:49

Не по теме:

mh-coder, Используй 5.6 ) Всё что выше пока что сильно баганутое. 5.8 это пожалуй самая баганутая версия Qt за последнее время. Не нужно её использовать.

1
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
08.08.2017, 12:50  [ТС]
Цитата Сообщение от Wyn Посмотреть сообщение
mh-coder, Используй 5.6 ) Всё что выше пока что сильно баганутое. 5.8 это пожалуй самая баганутая версия Qt за последнее время. Не нужно её использовать.
Самое обидное что разработчики qt не хотят эти баги признавать и что-то исправлять, вот спрашиваю в багтрекере,
зачем в функциях waitfor передавать сигналы которые забивают стек и никем не используются, исправьте функции, ответ - это нормально и так надо, так всё устроено, ну супер блин, о чем еще дальше с ними можно беседовать??
У всех блин утекает память на моем примере, у них не утекает, интересно есть у них там вообще главный кому можно пожаловаться на додиков которые отвечают в багтрекерах? иначе через пару лет с такими темпами qt максимум на что сгодится это для создания гуи интерфейса, а все остальное придется делать на winapi и linux api
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2017, 12:50

Утечка памяти после долгой работы компьютера
Братцы нужна помощь, решил попробовать в этом разделе, т.к. в разделе &quot;оперативки&quot; не помогли.. вообщем если комп работает целый...

HttpWebRequest, расход памяти непомерно больших объемов и , как следствие, утечка памяти
Добрый вечер. Мне была поставлена такая задача. Написать приложение, которая загружает из списка ссылки с сайта и ищет там определенную...

Вектор, утечка памяти, функция создания и выделение памяти
Здравствуйте. Есть проблема. функция malloc выделяет память лишь в функции CreateVector(), и при выходе из нее указатель теряется. Или не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru