Russian Qt Forum
Ноябрь 25, 2024, 12:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView Win vs Linux  (Прочитано 9473 раз)
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« : Июль 04, 2019, 20:37 »

Есть моделька, поверх которой навешано несколько разных проксей (колонки, группировка, сортировка, фильтрация), все это дело отображается в QTreeView,
В какой то момент в модель прилетает большое кол-во данных, ну к примеру 20-50 тыс элементов.
Данные прилетают по нажатию звездочки на одном из рутовых узлов. Уровень вложенности до 4-х.
В результате, линуксовая сборка рисует это все за 60-90сек, виндячья (10-ка МСВС 17) сборка рисовала 3,5часа(!) и я не дождался конца.
Обе сборка на Qt 5.8.0.
Все генерации айтемов дерева в ГУИ потоке.
В чем дело?
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Июль 04, 2019, 22:21 »

20 тысяч уже имеет мало смысла для "обычного" пользователя и ждать даже 5 сек - это долго !
я бы посмотрел valgrind|callgrind
ну и версию qt пора обновить, с тех пор могла быть оптимизация
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Июль 05, 2019, 00:11 »

большое кол-во данных

20-50 тыс элементов

 Смеющийся Смеющийся Смеющийся

По сабжу, следует начать с qTreeView->setUniformRowHeights(true);
Записан
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #3 : Июль 05, 2019, 09:40 »

TreeView->setUniformRowHeights(true);
включено.
ps: вопрос не как от задержки избавиться, а почему такая глобальная разница в двух осях при одинаковых условиях.
pps: теоретически догадываясь, что из за разности реализации гуи потоков.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #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 Offline

Сообщений: 221


Просмотр профиля
« Ответ #5 : Июль 25, 2019, 19:32 »

может, винда тупо подвисла? Улыбающийся
Исключено, на совсем разных тачках пробовали и по многу раз, поведение одинаковое, ну и остальные приложения работают в это время нормально.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #6 : Июль 29, 2019, 11:15 »

Что в TaskManager-е - приложение жрет 100% CPU?
Как вариант (слабый) дело в видео-драйвере.

Попробуйте отключить модель от TableView. И посмотреть на результат.
Говорите что навешаны прокси - а они достаточно оптимизированы? Используете ли fetchRows?
Записан
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #7 : Июль 29, 2019, 13:47 »

Что в TaskManager-е - приложение жрет 100% CPU?
Как вариант (слабый) дело в видео-драйвере.

Попробуйте отключить модель от TableView. И посмотреть на результат.
Говорите что навешаны прокси - а они достаточно оптимизированы? Используете ли fetchRows?
Приложение жрет одно ядро, прокси может и не сильно оптимально написаны, но код под разными осями один и тот же выполняется, но только разница в его производительности в сони раз различается.
Fetch используется до отрисовок.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #8 : Июль 29, 2019, 15:53 »

Случайно данные не из БД/Файла берутся?
Записан
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #9 : Июль 29, 2019, 16:15 »

Случайно данные не из БД/Файла берутся?
Они с сервера прилетают за полторы-две секунды.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #10 : Июль 29, 2019, 16:34 »

Что мешает взять и запустить профилировщик в студии? Непонимающий
Записан
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #11 : Июль 29, 2019, 17:10 »

Что мешает взять и запустить профилировщик в студии? Непонимающий
Наверное ничего, кроме того, классов которые к моделям относятся с полсотни и у каждого надо найти куда вкорячить профайлер.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #12 : Июль 29, 2019, 17:14 »

Что мешает взять и запустить профилировщик в студии? Непонимающий
Наверное ничего, кроме того, классов которые к моделям относятся с полсотни и у каждого надо найти куда вкорячить профайлер.

Простите, шта? Шокированный
Записан
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #13 : Июль 29, 2019, 22:02 »

Простите, шта? Шокированный
Я прост в вижуалстудии работал последний раз лет 10 назад, не вкурсах что там да как.
Под виндой только их компилятор используется.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 22.