Название: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Racheengel от Июнь 10, 2015, 16:45 Добрый день, уважаемые,
был замечен такой феномен: программы, собранные с Qt 5.3.x в 64-битной конфигурации под Windows 7 постоянно отжирают память при отрисовке чего-либо. ТОТ ЖЕ САМЫЙ код, собранный теми же компиляторами на той же машине в 32-битном варианте таких проблем не имеет. Проверялось с MSVC 2008 и 2013, результаты одинаковые: 32 бита все ок, 64 бита - дикие утечки памяти. Сталкивались ли вы с подобным? Можно побороть? Гугл ответа пока не дал... Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Bepec от Июнь 10, 2015, 17:22 Вариант, что вы не учитываете разный размер типов 32 и 64 архитектур, подходит или нет?
Тот же sizeof (int) на 32 будет 4, на 64 будет 8, а указатели вроде бы будут иметь размер 64 бита. PS это именно утечки, или просто большее потребление ресурсов? Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: __Heaven__ от Июнь 10, 2015, 17:41 sizeof (int) на 32 будет 4, на 64 будет 8, а указатели вроде бы будут иметь размер 64 бита. Не совсем так... int везде 32 бита. Меняется только размер указателя с 32 на 64 бита. Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Bepec от Июнь 10, 2015, 17:45 Не везде. На некоторых архитектурах он именно 8.
К примеру на моём старом рабочем компьютере, AMD-шке, он как раз менялся от 4 до 8. Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Racheengel от Июнь 10, 2015, 17:49 Вариант, что вы не учитываете разный размер типов 32 и 64 архитектур, подходит или нет? Нет, мы не делаем ничего специфичного для 32 бит архитектуры.Цитировать PS это именно утечки, или просто большее потребление ресурсов? Ну а в чем разница то? Если ресурсы потребляются чрезмерно - это и есть по сути "утечка". В 32-битном варианте, например, расход памяти доходил до 600 мб и далее не рос, а в 64-битном доходит до 2 гб, потом замедляется, но все равно медленно ползет вверх.Тут https://bugs.launchpad.net/stellarium/+bug/1406005 тоже у народа подобная проблема только на 64 битах и только под виндой, отжирание прекращается, когда они отрисовку выключают... Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: __Heaven__ от Июнь 10, 2015, 20:55 Bepec, мне известно, что на x32 и x64 размер инта 4. Вы про какие-то специфичные говорите архитектуры?
Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Racheengel от Июнь 11, 2015, 00:19 Ну на Интелах на x32 и x64 размер интов 4 байта - факт. Но Верес говорит про АМД, я так понял.
ЗЫ. у нас проблема на Интелах возникает, так что не в размере интов дело :( Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Alex Custov от Июнь 11, 2015, 00:35 Не везде. На некоторых архитектурах он именно 8. Это зависит от модели данных, используемой компилятором. Может быть 4, а может и 8, в зависимости от компилятора для данной архитектуры. Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Bepec от Июнь 11, 2015, 00:48 Кстати да, замечание Alex Gustov напомнило - в VS 2008 на i7 int тоже становился 8.
PS и да, в предыдущем сообщении я и говорил об AMD, мб просто кого то спугнула русская транскрипция :) Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Racheengel от Июнь 11, 2015, 01:38 Нативный компилятор генерирует код под конкретную архитектуру, он не может сгенерить 8-битовый инт под таргет интел, который поддерживает только 4 бита. Иначе это кросс-компиляция.
Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: Bepec от Июнь 11, 2015, 02:08 Я лично компилил программу sizeof(int). На 64 выдавало 8.
Но не суть. По всей видимости имеет место именно баг в Qt. Надо бы поразбираться конечно, но не могу - уезжаю отдыхать :D Название: Re: Memory Leak в сборке Qt 5.3.x 64bit под Windows 7 Отправлено: __Heaven__ от Июнь 11, 2015, 09:27 интересно... :P у меня всегда был intel :)
|