Russian Qt Forum
Ноябрь 22, 2024, 22:59
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Model-View (MV)
>
qvector.h, line 489: Out of memory
Страниц:
1
[
2
]
3
4
5
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: qvector.h, line 489: Out of memory (Прочитано 30680 раз)
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: qvector.h, line 489: Out of memory
«
Ответ #15 :
Ноябрь 17, 2014, 11:14 »
Цитата: Bepec от Ноябрь 17, 2014, 10:00
PS Вылетает скорее всего изза предела в 2 Гб для x32 программы.
В точку по поводу x32. Но насчёт 2 Гб - не знаю как устроены классы, но потребление в аттаче
Откомпилировал свой проект под msvc 2013 с Qt 5.3.1 opengl 64 и мой большой файл открылся без проблем. К сожалению нет возможности проверить работу при msvc x32 компиляторе. Но, думаю, что там будет то же.
Повторить подобную ошибку мне не удалось в минимально компилябельном проекте. То, что я присылал немного отличается от того, что происходит в реальном проекте. В том, что я выслал происходит зависание, а в моем реальном именно выпадает ошибка.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: qvector.h, line 489: Out of memory
«
Ответ #16 :
Ноябрь 17, 2014, 11:23 »
В 32 архитектуре процессу доступно только 2 GB оперативы. Я тоже склоняюсь, что проблема в этом.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: qvector.h, line 489: Out of memory
«
Ответ #17 :
Ноябрь 17, 2014, 11:28 »
Цитата: Пантер от Ноябрь 17, 2014, 11:23
В 32 архитектуре процессу доступно только 2 GB оперативы.
Под вендой.
В linux - 3 Gb.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: qvector.h, line 489: Out of memory
«
Ответ #18 :
Ноябрь 17, 2014, 11:29 »
Цитата: Old от Ноябрь 17, 2014, 11:28
Цитата: Пантер от Ноябрь 17, 2014, 11:23
В 32 архитектуре процессу доступно только 2 GB оперативы.
Под вендой.
В linux - 3 Gb.
Да, забыл уточнить. Спасибо.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: qvector.h, line 489: Out of memory
«
Ответ #19 :
Ноябрь 17, 2014, 11:32 »
Спасибо за ответы.
Немного стыдно, что не знал про 2ГБ. Я был уверен, что выделяется до 4ГБ, если приложение запустить из-под x64
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: qvector.h, line 489: Out of memory
«
Ответ #20 :
Ноябрь 17, 2014, 11:47 »
А как отлавливать такие исключения? Куда цеплять try?
Записан
Bepec
Гость
Re: qvector.h, line 489: Out of memory
«
Ответ #21 :
Ноябрь 17, 2014, 11:50 »
Под виндой это довольно запутанно и сложно
Имеется вроде бы блок для ловли таких вот гадостей в __try.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: qvector.h, line 489: Out of memory
«
Ответ #22 :
Ноябрь 17, 2014, 11:51 »
ИМХО, под виндой такое сложно отловить. Нужно изначально разрабатывать, чтобы не превышать лимитов.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: qvector.h, line 489: Out of memory
«
Ответ #23 :
Ноябрь 17, 2014, 14:14 »
Цитата: Пантер от Ноябрь 17, 2014, 11:51
ИМХО, под виндой такое сложно отловить. Нужно изначально разрабатывать, чтобы не превышать лимитов.
Так понимаю, лимиты подбираются на ощупь в моем случае.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: qvector.h, line 489: Out of memory
«
Ответ #24 :
Ноябрь 17, 2014, 14:15 »
А еще интересно вот что!
Если я беру этот же массив и вывожу не в одну колонку, а в 3, то ошибка не выскакивает.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: qvector.h, line 489: Out of memory
«
Ответ #25 :
Ноябрь 17, 2014, 14:16 »
Цитата: __Heaven__ от Ноябрь 17, 2014, 14:14
Цитата: Пантер от Ноябрь 17, 2014, 11:51
ИМХО, под виндой такое сложно отловить. Нужно изначально разрабатывать, чтобы не превышать лимитов.
Так понимаю, лимиты подбираются на ощупь в моем случае.
Ну, смотри, Куьют из скулайтной базы подтягивает данные по 256 строк. Можешь так примерно и сделать. Пользователю не нужно видеть мульоны строк, ему нужно 100 +- 50 максимум. А дальше можно отфильтровать.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: qvector.h, line 489: Out of memory
«
Ответ #26 :
Ноябрь 17, 2014, 14:50 »
Цитата: Пантер от Ноябрь 17, 2014, 14:16
Можешь так примерно и сделать. Пользователю не нужно видеть мульоны строк, ему нужно 100 +- 50 максимум. А дальше можно отфильтровать.
Как при этом должен работать скроллбар? Если я захочу потянуть за него?
Он должен просто иметь 3 положения: верх, низ и середина?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: qvector.h, line 489: Out of memory
«
Ответ #27 :
Ноябрь 17, 2014, 15:00 »
Хм. По-идее, можно размер передавать реальный, а вот в памяти держать только нужные данные. Вьюха не запрашивает данные для ячеек, которые не видны. Исключением будет если ты пытаешься сделать ресайз колонок под содержимое - тогда делается пробег по всем значениям.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: qvector.h, line 489: Out of memory
«
Ответ #28 :
Ноябрь 17, 2014, 15:25 »
Цитата: Пантер от Ноябрь 17, 2014, 15:00
Хм. По-идее, можно размер передавать реальный, а вот в памяти держать только нужные данные. Вьюха не запрашивает данные для ячеек, которые не видны. Исключением будет если ты пытаешься сделать ресайз колонок под содержимое - тогда делается пробег по всем значениям.
У меня 5.3 и вьюха, как мне кажется, делает пробег по всем колонкам/строкам (скрытым и отображенным). Более того, она делает это мультипоточно.
Одни и теже данные я пытаюсь отобразить в 3 колонки, а затем в 1. Ничего не меняю в памяти кроме nColumns и nRows.
При отображении в 3 все ок. А при отображении в 1 выброс.
Также я вешал на методы data, headerData функцию qDebug(). Она вызывалась много большее число раз, чем строк имеется в отображении.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: qvector.h, line 489: Out of memory
«
Ответ #29 :
Ноябрь 17, 2014, 15:27 »
Прокси?
Ресайз политика колонок/строк?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц:
1
[
2
]
3
4
5
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...