Название: TableView и скорость работы Отправлено: Vamireh от Июнь 30, 2014, 21:01 В свободное время перевожу проект на QML. Вот очередная проблема. Есть табличная модель, в QTableView летает с 5 млн. строк. Я перенаследовал модель на QAbstractListModel и загрузил в TableView. В итоге скроллинг лагает жутко уже на 5000 строках. Так и должно быть? Добавлял примерно так:
Код: TableView { Название: Re: TableView и скорость работы Отправлено: navrocky от Июль 02, 2014, 12:13 Quick компоненты еще сырые, вполне возможно что будет лагать. И вообще, десктопный интерфейс через Quick более лагающий (ресайз окна, как минимум), т.к. opengl.
Я пока до сих пор не вижу смысла в портировании десктопной проги (с тубарами, таблицами и пр.) под Quick. Quick интерфейс хорошо подходит в том случае, если нужно выпендриться с внешним видом, чтобы всё плавно ездило, аля мобилки, планшеты, терминалы. Название: Re: TableView и скорость работы Отправлено: GreatSnake от Июль 02, 2014, 17:25 QML реализован через QGraphicsScene/QGraphicsView, поэтому и тормоза.
Название: Re: TableView и скорость работы Отправлено: Alex Custov от Июль 02, 2014, 18:44 это зависит от наличия аппаратного 3D ускорения в OpenGL. Если всё работает в софтвере - будет тормозить. Я когда-то тестировал табличку у себя, у меня в принципе нормально бегало на 10'000 записях, на 100'000 подлагивало, но не жёстко. При переходе в софтвер всё резко изменилось, "родной" C++ QTreeView был на порядок быстрее.
Название: Re: TableView и скорость работы Отправлено: navrocky от Июль 02, 2014, 19:22 QML реализован через QGraphicsScene/QGraphicsView, поэтому и тормоза. Это Quick1 так сделан. Quick2 совсем другое. Судя по тому, что топикстартер пишет про TableView, то используемая версия у него >= Qt 5.2 и Quick 2 версии соответственно. Цитировать это зависит от наличия аппаратного 3D ускорения в OpenGL. Если всё работает в софтвере - будет тормозить. Я когда-то тестировал табличку у себя, у меня в принципе нормально бегало на 10'000 записях, на 100'000 подлагивало, но не жёстко. При переходе в софтвер всё резко изменилось, "родной" C++ QTreeView был на порядок быстрее. Не совсем понятно, что означает отсутствие аппаратного ускорения в OpenGL. Если речь идет о винде, то там дефолтный OpenGL v1 и Quick2 с ним работать просто не может. Если стоят дрова от производителя видеокарты, то OpenGL 100% аппаратный. Да еще есть вариант с ANGLE, который будет по определению медленнее чем OpenGL от производителя. Если тестируется в Linux, то возможны самые различные варианты, полное отсутствие OpenGL, программная эмуляция разных видов, разной степени кривизны поддержка аппаратного ускорения. В общем, маловато инфы для размышлений. Название: Re: TableView и скорость работы Отправлено: Vamireh от Июль 02, 2014, 20:43 Кстати, под Windows 7 на более слабом по всем статьям компе лагает чуть меньше, чем под топовым ноутом на Linux. Но все равно ад.
Я предполагал, что будут тормоза, но слишком часто от умных людей читал/слышал, что возможны тормоза только при парсинге *.qml, а потом один фиг чистый c++. Название: Re: TableView и скорость работы Отправлено: Vamireh от Июль 02, 2014, 20:46 чтобы всё плавно ездило Ползунок скроллбара так плавно ездит, что вообще офигеть Название: Re: TableView и скорость работы Отправлено: Alex Custov от Июль 02, 2014, 20:56 Кстати, под Windows 7 на более слабом по всем статьям компе лагает чуть меньше, чем под топовым ноутом на Linux. Но все равно ад. Я предполагал, что будут тормоза, но слишком часто от умных людей читал/слышал, что возможны тормоза только при парсинге *.qml, а потом один фиг чистый c++. у тебя софтверная обработка. Видимо драйверы, которые дали бы аппаратное ускорение, у тебя не стоят Название: Re: TableView и скорость работы Отправлено: Vamireh от Июль 02, 2014, 20:58 И вот еще что. Я когда-то давно еще на Delphi писал велосипед типа TableGrid, так вот там шла обработка только тех строк, которые на экран помещаются, а прокрутка независимым скроллбаром реализована была. Я думал в Quick примерно также реализовано.
Название: Re: TableView и скорость работы Отправлено: Vamireh от Июль 02, 2014, 20:59 Кстати, под Windows 7 на более слабом по всем статьям компе лагает чуть меньше, чем под топовым ноутом на Linux. Но все равно ад. Я предполагал, что будут тормоза, но слишком часто от умных людей читал/слышал, что возможны тормоза только при парсинге *.qml, а потом один фиг чистый c++. у тебя софтверная обработка. Видимо драйверы, которые дали бы аппаратное ускорение, у тебя не стоят не не, nvidia 337 используется Название: Re: TableView и скорость работы Отправлено: Alex Custov от Июль 02, 2014, 20:59 Если тестируется в Linux, то возможны самые различные варианты, полное отсутствие OpenGL, программная эмуляция разных видов, разной степени кривизны поддержка аппаратного ускорения. С полным отсутствием OpenGL всё это дело просто не запустится. С дефолтными дровами, многие из которых дают только аппаратно ускоренный 2d - будет тормозить (вероятно для Радеонов уже есть дефолтное нормальное 3d, не следил за этим делом). С полноценным (часто проприетарным) драйвером будет 3d ускорение и нормальная работа QML. Название: Re: TableView и скорость работы Отправлено: Alex Custov от Июль 02, 2014, 21:00 не не, nvidia 337 используется а glxgears сколько FPS показывают? Запускай из консоли. Название: Re: TableView и скорость работы Отправлено: navrocky от Июль 02, 2014, 23:04 чтобы всё плавно ездило Ползунок скроллбара так плавно ездит, что вообще офигеть УМВР. У меня ноут с интеловской видяхой, все плавно, под линукс работает в два раза быстрее как парсинг QML, так и плавнее анимация по сравнению с виндой. Запускал также прогу на своем андроиде с ARM11 + Adreno200, скроллится тоже все плавно. Дрова то ставил на невидию или на nouveau пускаешь? 2. ListView и производные от него, такие как TableView, именно так и сделаны - создают компоненты только для видимых строк. Поэтом можно создать модель с охулеардом строк и она будет нормально скроллироваться. Есть и обратная сторона, т.к. строки постоянно создаются и уничтожаются, это немного сказывается на плавности скроллинга. Название: Re: TableView и скорость работы Отправлено: Vamireh от Июль 02, 2014, 23:13 блин, vsync был включен. теперь FPS 2900-3000. Со скроллингом стало лучше. Но все таки даже на миллионе строк фактически скролл не работает, виснет на много секунд.
Название: Re: TableView и скорость работы Отправлено: navrocky от Июль 02, 2014, 23:23 http://www.youtube.com/watch?v=_7GZYe3YlWw&feature=youtu.be
Тут у меня таблица может быть очень длинной, скроллируется довольно плавно. Видео лагает только после конвертации ютубом :( Название: Re: TableView и скорость работы Отправлено: Bepec от Июль 02, 2014, 23:48 to navrocky: если уж выкладываешь видео, сделай его публичным ^.^
Название: Re: TableView и скорость работы Отправлено: navrocky от Июль 03, 2014, 08:07 to navrocky: если уж выкладываешь видео, сделай его публичным ^.^ Да уж :D Сделал. http://youtu.be/_7GZYe3YlWw |