Russian Qt Forum
Ноябрь 25, 2024, 12:06
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QTreeView Win vs Linux
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QTreeView Win vs Linux (Прочитано 9473 раз)
RedDog
Частый гость
Offline
Сообщений: 221
QTreeView Win vs Linux
«
:
Июль 04, 2019, 20:37 »
Есть моделька, поверх которой навешано несколько разных проксей (колонки, группировка, сортировка, фильтрация), все это дело отображается в QTreeView,
В какой то момент в модель прилетает большое кол-во данных, ну к примеру 20-50 тыс элементов.
Данные прилетают по нажатию звездочки на одном из рутовых узлов. Уровень вложенности до 4-х.
В результате, линуксовая сборка рисует это все за 60-90сек, виндячья (10-ка МСВС 17) сборка рисовала 3,5часа(!) и я не дождался конца.
Обе сборка на Qt 5.8.0.
Все генерации айтемов дерева в ГУИ потоке.
В чем дело?
Записан
qate
Супер
Offline
Сообщений: 1177
Re: QTreeView Win vs Linux
«
Ответ #1 :
Июль 04, 2019, 22:21 »
20 тысяч уже имеет мало смысла для "обычного" пользователя и ждать даже 5 сек - это долго !
я бы посмотрел valgrind|callgrind
ну и версию qt пора обновить, с тех пор могла быть оптимизация
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QTreeView Win vs Linux
«
Ответ #2 :
Июль 05, 2019, 00:11 »
Цитата: RedDog от Июль 04, 2019, 20:37
большое кол-во данных
Цитата: RedDog от Июль 04, 2019, 20:37
20-50 тыс элементов
По сабжу, следует начать с qTreeView->setUniformRowHeights(true);
Записан
RedDog
Частый гость
Offline
Сообщений: 221
Re: QTreeView Win vs Linux
«
Ответ #3 :
Июль 05, 2019, 09:40 »
TreeView->setUniformRowHeights(true);
включено.
ps: вопрос не как от задержки избавиться, а почему такая глобальная разница в двух осях при одинаковых условиях.
pps: теоретически догадываясь, что из за разности реализации гуи потоков.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: QTreeView Win vs Linux
«
Ответ #4 :
Июль 25, 2019, 17:54 »
может, винда тупо подвисла?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
RedDog
Частый гость
Offline
Сообщений: 221
Re: QTreeView Win vs Linux
«
Ответ #5 :
Июль 25, 2019, 19:32 »
Цитата: Racheengel от Июль 25, 2019, 17:54
может, винда тупо подвисла?
Исключено, на совсем разных тачках пробовали и по многу раз, поведение одинаковое, ну и остальные приложения работают в это время нормально.
Записан
Fregloin
Супер
Offline
Сообщений: 1025
Re: QTreeView Win vs Linux
«
Ответ #6 :
Июль 29, 2019, 11:15 »
Что в TaskManager-е - приложение жрет 100% CPU?
Как вариант (слабый) дело в видео-драйвере.
Попробуйте отключить модель от TableView. И посмотреть на результат.
Говорите что навешаны прокси - а они достаточно оптимизированы? Используете ли fetchRows?
Записан
RedDog
Частый гость
Offline
Сообщений: 221
Re: QTreeView Win vs Linux
«
Ответ #7 :
Июль 29, 2019, 13:47 »
Цитата: Fregloin от Июль 29, 2019, 11:15
Что в TaskManager-е - приложение жрет 100% CPU?
Как вариант (слабый) дело в видео-драйвере.
Попробуйте отключить модель от TableView. И посмотреть на результат.
Говорите что навешаны прокси - а они достаточно оптимизированы? Используете ли fetchRows?
Приложение жрет одно ядро, прокси может и не сильно оптимально написаны, но код под разными осями один и тот же выполняется, но только разница в его производительности в сони раз различается.
Fetch используется до отрисовок.
Записан
Fregloin
Супер
Offline
Сообщений: 1025
Re: QTreeView Win vs Linux
«
Ответ #8 :
Июль 29, 2019, 15:53 »
Случайно данные не из БД/Файла берутся?
Записан
RedDog
Частый гость
Offline
Сообщений: 221
Re: QTreeView Win vs Linux
«
Ответ #9 :
Июль 29, 2019, 16:15 »
Цитата: Fregloin от Июль 29, 2019, 15:53
Случайно данные не из БД/Файла берутся?
Они с сервера прилетают за полторы-две секунды.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QTreeView Win vs Linux
«
Ответ #10 :
Июль 29, 2019, 16:34 »
Что мешает взять и запустить профилировщик в студии?
Записан
RedDog
Частый гость
Offline
Сообщений: 221
Re: QTreeView Win vs Linux
«
Ответ #11 :
Июль 29, 2019, 17:10 »
Цитата: Авварон от Июль 29, 2019, 16:34
Что мешает взять и запустить профилировщик в студии?
Наверное ничего, кроме того, классов которые к моделям относятся с полсотни и у каждого надо найти куда вкорячить профайлер.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QTreeView Win vs Linux
«
Ответ #12 :
Июль 29, 2019, 17:14 »
Цитата: RedDog от Июль 29, 2019, 17:10
Цитата: Авварон от Июль 29, 2019, 16:34
Что мешает взять и запустить профилировщик в студии?
Наверное ничего, кроме того, классов которые к моделям относятся с полсотни и у каждого надо найти куда вкорячить профайлер.
Простите, шта?
Записан
RedDog
Частый гость
Offline
Сообщений: 221
Re: QTreeView Win vs Linux
«
Ответ #13 :
Июль 29, 2019, 22:02 »
Цитата: Авварон от Июль 29, 2019, 17:14
Простите, шта?
Я прост в вижуалстудии работал последний раз лет 10 назад, не вкурсах что там да как.
Под виндой только их компилятор используется.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...