Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45

QT 5 Очистка памяти или глюки фреймворка

05.03.2016, 16:02. Показов 5312. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня, возникла странная проблема.
Создаем TcpServer к нему коннектим 300 подключений, видим как съедается 3 метра памяти, отключаем клиентов, вызываем deleteLater(), delete object; но память не чистится всеравно. как быть?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2016, 16:02
Ответы с готовыми решениями:

Выбор cms или фреймворка
Доброго времени суток. Собираюсь разрабатывать сайт учебных курсов. На нем будут размещать объявления различные учебные курсы и школы, а...

Выбор фреймворка или CMS для корпаративного сайта
Добрый день! Помогите, пожалуйста, выбрать фреймворк или CMS для корпаративного сайта. Сайт будет что-то вроде базы данных с именами...

Выбор CMS или фреймворка для базы данных
Всем привет! Помогите, пожалуйста, в выборе какого-то движка для базы данных (неважно, CMS или фреймворк). Суть в следующем -...

45
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 16:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Mimik_fc7 Посмотреть сообщение
Лучше на винде проверьте поведение...
Может я сам буду решать что мне делать, а что нет? Вам тут не платная техподдержка.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 16:28  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Может я сам буду решать что мне делать, а что нет?
Без проблем, просто тогда ни вы ни я не получим ответа на то почему на винде это кушает память.. На линухе пока проверяю, но на виртуалке QT сильно тупит..
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 16:32
Цитата Сообщение от Mimik_fc7 Посмотреть сообщение
ни вы ни я не получим ответа
Меня это изначально не волновало. Тем более утечка только в вашей фантазии, никаких доказательств с вашей стороны пока не было.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 16:38  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
доказательств с вашей стороны пока не было
Давайте TeamViewer ? убедитесь сами, если конечно желаете..
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 16:42
Может мне еще к вам домой приехать и самому посмотреть? Это не платная тех.поддержка. В первых постах я уже написал, что утечки нужно проверять специальными инструментами, что вы не осилили.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 16:44  [ТС]
Я нашел как вы можете проверить мои слова!!!
Сделайте так, соберите ваш проект, и с консольки его запустите без отладчика, затем сделайте pmap -d и посмотрите сколько выделено памяти под процесс, создайте 200 коннектов, проверьте кол-во занимаемой памяти и отключите эти 200 коннектов, и вуаля размер занимаемой памяти не изменится.
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 16:53
По прежнему без утечек. Вы весь свой код выложите. Полный проект.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 17:00  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
По прежнему без утечек. Вы весь свой код выложите. Полный проект.
я уже ваш скопипастил (вы же мой былокодом назвали) думаю ваш чем-то особенно хорош, наверное карма на нем правильная =)
вот интересное место
ch1 до подключения, ch2 после подключения, ch3 после всех дисконнектов
Миниатюры
QT 5 Очистка памяти или глюки фреймворка  
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 17:05
Еще мельче слабо было сделать? Ничего же не видно.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 17:09  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
ще мельче слабо было сделать?
Сори не специально, так лучше? pmap -q
Миниатюры
QT 5 Очистка памяти или глюки фреймворка  
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 17:34
1) Ок, клиент у вас такой же как у меня или нет?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
    for (int i = 0; i < 105; ++i) {
        qDebug() << i;
        QTcpSocket *socket = new QTcpSocket(this);
        socket->connectToHost("127.0.0.1", 3058);
        socket->waitForConnected();
        socket->close();
        delete socket;
 
        QThread::msleep(10);
    }
2) Вы delete soc; вообще удалили или заменили на soc->deleteLater();?

В моем коде утечки нет. У вас или кривая копипаста или вы используете его как-то по другому.

Добавлено через 1 минуту
3) Зачем вы вообще смотрите на какую-то одну строку, а не на общее потребление памяти?
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 17:45  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
В моем коде утечки нет
на линухе valgrind тоже говорит, что утечек нет, суть в том, что на винде да и как выходит на линухе, при партии коннектов выделяется память и не уменьшается при дисконнекте, проблема в том, что за пару часов такимим коннектами реконнектами по 200 штук я добивался краша простого приложения, а у меня цель сделать на нем ретранслятор данных, для 4000 клиентов с постоянным подключением. получается, так, что QT не чистит память и все тут.

Добавлено через 6 минут
Цитата Сообщение от RazrFalcon Посмотреть сообщение
В моем коде утечки нет
на линухе valgrind тоже говорит, что утечек нет, суть в том, что на винде да и как выходит на линухе, при
про стек я писал выше, получается так, что при старте допустим у нас выделился метр памяти под приложение, так как нужно обеспечить клиента памятью QT выделяет сокету память примерно так
[ a | a | a | a | a | s | s | s | s | s ] где a блоки под приложение s блоки под клиента. при дисконнекте, эти блоки чистятся, но общее выделение памяти :

[ a | a | a | a | a | 0 | 0 | 0 | 0 | 0 ] но это при условии пользования QPointer, тогда при следующем коннекте снова заполнится память уже выделенная, а потом будет выделено еще если поступит еще коннект.
если же не использовать QPointer он постоянно увеличивает память, а чистит эту или нет, я не знаю, нужно попробовть сделать дампы памяти по блокам.
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 18:09
Цитата Сообщение от Mimik_fc7 Посмотреть сообщение
получается, так, что QT не чистит память и все тут.
Еще раз. Все Qt чистит. Проблема у вас в коде. Если не чистит - пишите багрепорт, с подробным описанием, авторам Qt. Посмотрим что они скажут.

Вы вообще понимаете как работает стек или нет? Утечек на стеке не бывает.

QPointer вообще глупая обертка, она вам ничего не дает. Тем более вы ее неверно используете.

Вы имеете очень смутные представления о том как нужно работать с памятью в C++, но, почему-то, вините во всем Qt. И не надо начинать про мое чсв и прочие отговорки. Вашего маленького куска кода вполне достаточно, что бы понять ваш уровень.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 18:38  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
достаточно, что бы понять ваш уровень.
Вот я не пойму, зачем вы столько раз тыкаете в мой уровень, то, что я вам скинул, это уровень владения QT, утечек на стеке не бывает, это итак понятно, речь идет о выделении памяти под приложение вот и все. Все чем вы оперируете это valgrid, и он говорит, что утечек нет, и это так, утечек нет, есть просто расширение памяти и нет realloc вот и вся суть.
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 18:44
Цитата Сообщение от Mimik_fc7 Посмотреть сообщение
зачем вы столько раз тыкаете в мой уровен
Потому, что С++ - это системный язык. Нужно четко понимать что вы делаете. Вы не понимаете. Это видно из кода. Отсюда и все ваши "утечки".

Цитата Сообщение от Mimik_fc7 Посмотреть сообщение
и он говорит, что утечек нет, и это так, утечек нет, есть просто расширение памяти и нет realloc вот и вся суть
Что за бред?! Если память была выделена, а потом очищена - это не утечка, о чем и пишет valgrind. Расширение памяти не является утечкой по умолчанию. Если я добавил в вектор 100500 элементов - это не утечка, это необходимость. Если я затем не очистил этот вектор - это утечка.

В моем коде сервера утечек нет. Прога потребляет постоянное количество памяти, так как подключение всегда только одно.

Жду ссылку на багрепорт. Ну или полный код проектов сервера и клиентов, архивом.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 18:50  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Жду ссылку на багрепорт. Ну или полный код проектов сервера и клиентов, архивом.
Я сейчас качаю последнюю версию QT проверю на ней, если будет тоже самое, то да будем пробовать отписать в багрепорт и запишу видео специально для вас. и приложу архивы, но это все будет под винду, не против?
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
06.03.2016, 19:05
Цитата Сообщение от Mimik_fc7 Посмотреть сообщение
есть просто расширение памяти и нет realloc вот и вся суть.
А кто гарантировал, что будет "realloc"? Менеджер памяти может придержать часть памяти, для оптимизации.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
06.03.2016, 19:07  [ТС]
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
придержать часть памяти
За пару часов, он что-то придержал уже 300 метров, это нормально? =)
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
06.03.2016, 19:34
Цитата Сообщение от Mimik_fc7 Посмотреть сообщение
запишу видео специально для вас. и приложу архивы, но это все будет под винду, не против?
Мне зачем? Вы багрепорт покажите, мне больше ничего не надо.
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 45
07.03.2016, 00:33  [ТС]
Печально но на 5.6 та же ерунда.
Миниатюры
QT 5 Очистка памяти или глюки фреймворка   QT 5 Очистка памяти или глюки фреймворка   QT 5 Очистка памяти или глюки фреймворка  

Вложения
Тип файла: zip QtServer.zip (3.8 Кб, 1 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2016, 00:33

Не могу определиться между использованием фреймворка или чистого PHP
Здравствуйте, подскажите пожалуйста, я решил написать сайт доска объявлений(наподобие как автито, сландо, olx) только не могу опредилиться...

Обновление без ChangeTracker'a или два фреймворка в одном проекте?
Как оптимально реализовать построение запросов на частичное обновление данных, если нет дефолтного контроля изменений со стороны...

Как устранить глюки оперативной памяти?
Проблема в следующем: Есть оперативная память: два комплекта DIMM DDR2, 4ГБ (2x2ГБ) , Kingston HyperX, KHX8500D2K2/4G итого 8 гб. ...

Очистка памяти
При выполнении программы, память приложения растёт, а она должна быть неизменной. int main() { setlocale(LC_ALL,...

очистка памяти
при запуск программы сама собой создаётся точка останова в строке 59. И дальше программа идти не хочет (даже инструментами отладки). //...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru