Форум программистов, компьютерный форум, киберфорум
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. Показов 3182. Ответов 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
13846 / 7889 / 1706
Регистрация: 25.05.2015
Сообщений: 23,955
Записей в блоге: 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
13846 / 7889 / 1706
Регистрация: 25.05.2015
Сообщений: 23,955
Записей в блоге: 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
13846 / 7889 / 1706
Регистрация: 25.05.2015
Сообщений: 23,955
Записей в блоге: 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
13846 / 7889 / 1706
Регистрация: 25.05.2015
Сообщений: 23,955
Записей в блоге: 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
13846 / 7889 / 1706
Регистрация: 25.05.2015
Сообщений: 23,955
Записей в блоге: 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
13846 / 7889 / 1706
Регистрация: 25.05.2015
Сообщений: 23,955
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru