Russian Qt Forum
Ноябрь 23, 2024, 00:40
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Quick
(Модератор:
navrocky
) >
ListView GridView и подобные вью жрут память
Страниц:
1
2
[
3
]
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: ListView GridView и подобные вью жрут память (Прочитано 25086 раз)
carrygun
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #30 :
Июль 29, 2016, 08:57 »
У вас какое-то обострение? То Windows vs Linux, теперь C++ vs QML. Глупо говорить, что что-то не нужно, только потому что ты не смог разобраться или, что еще хуже, кто-то там сказал что оно плохое. Чаще всего эти споры зависят от конкретных задач.
Не для кого, надеюсь, не секрет что QML делает упор на интерфейс. И, надо сказать, этот инструмент очень удобный для всяких мобильных платформ, терминалов и прочего. Для сложных приложений лучше конечно не отказываться от C++ в связке с QML. Разделять логику и интерфейс в QML тоже можно без проблем. А вот виждеты я предпочитаю для десктопных платформ, там они смотрятся хорошо и привычно.
Записан
Bepec
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #31 :
Июль 29, 2016, 10:09 »
carrygun WTF?
Откройте глаза, не я начинаю эти темы
Так что спрашивайте зачинщиков. Но то, что я говорю верно на 85%
Записан
carrygun
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #32 :
Июль 29, 2016, 10:44 »
На 85% тут только бред.
Например:
Цитировать
QML ущербен как ЯП, т.к. он предназначен для быстрого прототипирования интерфейса и заточен исключительно на это.
Это как примерно сказать "Ну SQL ущербен, так как он предназначен для написания запросов и заточен исключительно для этого."
Я просто хотел вам сказать что нельзя брать один инструмент и подходить с ним к любой задаче. QML в конце концов часть SDK и если бы они позиционировали его как отдельный продукт, то так бы и сделали. Вам дали хороший, годный инструмент. Бесплатно. Остается брать и применять его с умом. Не надо на нем писать комбайны, конверторы видео или работу с памятью. В официальном "букваре" написано что такое QML и как его правильно готовить.
Или вот:
Цитировать
Подумай потом на досуге, почему виджеты так безнадежно забросили.
Очень хотелось бы чтобы вы действительно подумали, особенно прежде чем писать такие вещи. Если их не используете вы, то это не значит, что все их не используют.
P.S. я никого не хотел обидеть (но вы держитесь там), но зачастую в таких спорах (не только в этой теме) только и видно аргументы "Это круто, потому что все говорят круто и потому что я этим пользуюсь, а все остальное фигня без задач."
Записан
BuRn
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #33 :
Июль 29, 2016, 10:53 »
Цитата: Komorebi от Июль 28, 2016, 23:28
Кстати да, еще ни разу не видел лагающего интерфейса на qml)
Значит ты мало еще в этой жизни повидал, давно работаю с ним и поверь, оно тормозит. Хотя конечно на и7 с 16гб оперативной памятью этого не видно
Записан
Bepec
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #34 :
Июль 29, 2016, 11:22 »
carrygun
Моё -
Цитировать
QML ущербен как ЯП.
Ваше -
Цитировать
QML в конце концов часть SDK.
И это два одинаковых изречения, с одинаковым смыслом. Он ущербен как полноценный ЯП, но в составке C++ + Qt + QML он хорошо выполняет свою задачу.
Цитировать
Подумай потом на досуге, почему виджеты так безнадежно забросили.
- эт вообще не моя реплика, обращайтесь к разводителю аля "Komorebi".
PS и не разводите оффтоп в теме. Создавайте уж тогда лучше новую тему и я вам предметно докажу что вы неправы
«
Последнее редактирование: Июль 29, 2016, 11:24 от Bepec
»
Записан
carrygun
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #35 :
Июль 29, 2016, 11:38 »
Я так и не увидел в чем ущербность того или иного ЯП, кроме того что вы ничего не поняли и не разобрались. С тем же успехом можно открыть Хаскель, Эрланг, Лисп, итд и сказать "ну, блин, ничего не понятно, ущербные языки". Возводить одни кресты в абсолют - глупо, лучше развивайтесь.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: ListView GridView и подобные вью жрут память
«
Ответ #36 :
Июль 29, 2016, 12:00 »
Цитата: carrygun от Июль 29, 2016, 11:38
Я так и не увидел в чем ущербность того или иного ЯП, кроме того что вы ничего не поняли и не разобрались. С тем же успехом можно открыть Хаскель, Эрланг, Лисп, итд и сказать "ну, блин, ничего не понятно, ущербные языки". Возводить одни кресты в абсолют - глупо, лучше развивайтесь.
Ущербность чаще всего видно по конечному продукту.
Понятно, что и на С++ можно написать жутко тормознутый код.
Но если принять, что, допустим, код написан "правильно" - можно ли средствами Хаскель, Эрланг, Лисп, итд добиться таких же качественных (во всех отношениях) продуктов, как на "древних плюсах"?
Записан
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 не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: ListView GridView и подобные вью жрут память
«
Ответ #37 :
Июль 29, 2016, 12:08 »
Насколько я понял (мельком глянув Qt доку), QML позволяет легко и быстро создавать разнообразные эффекты прямо "ис каропки". Мне это не нужно (или нужно редко), поэтому QML не пользуюсь.
Все же, пользуясь случаем, хотелось бы поинтересоваться у тех кто на нем работает - а насколько велики его мощности/возможности? Если мне (ну вот вдруг) понадобятся те эффекты что в доке - я их и на плюсах напишу (пусть и затратив куда больше времени). Из-за такого нет смысла "изучать систему".
Но вот напр
такой случай
. Тут уже все не так просто. Насколько здесь поможет QML? Напрашивающийся ответ "да, конечно, там же есть мощные/развитые партиклы" я уже получил. Только вот думаю здесь партиклы не очень подойдут. А иначе - как?
Спасибо
«
Последнее редактирование: Июль 29, 2016, 12:10 от Igors
»
Записан
Отражение луны
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #38 :
Июль 31, 2016, 03:21 »
Цитата: Bepec от Июль 28, 2016, 23:54
Последняя моя попытка достучаться до сознания Komorebi:
В QML понятия класс/view/model/worker как таковые не существуют. Есть нечто среднее и оно ограничено тем функционалом, что решили разработчики. Всё. Дальше этой границы никто не уйдет. По сути это конструктор.
C++ и прочие полные языки разделяют эти понятия и дают возможность создать своё. Границы возможностей как таковой нет, она зависит исключительно от возможностей и знаний программиста. Всё что нельзя создать одним способом, можно создать десятком других и так далее.
QML ущербен как ЯП, т.к. он предназначен для быстрого прототипирования интерфейса и заточен исключительно на это. Многие вещи в нём реализовать невозможно, от слова вообще.
Собственно тролли это знают и именно поэтому в QML есть возможность проброса C++ классов и прочее.
Возможно в будущем, в версии 3/4/5/6/7 они дополнят язык. Но пока это язык для интерфейса
PS если проще - QML с С++ - это превосходно. QML без С++ - это инвалид.
QML + js - это полноценное ООП. Нет ничего такого, что нельзя сделать на QML и js, что при этом можно сделать на C++, исключая всякие низкоуровневые вещи, для расширения QML окружения которыми и используется C++.
На ноде системные утилиты порой пишут. Тут то же самое. Принципиальных архитектурных отличий нет.
Цитата: BuRn от Июль 29, 2016, 10:53
Значит ты мало еще в этой жизни повидал, давно работаю с ним и поверь, оно тормозит. Хотя конечно на и7 с 16гб оперативной памятью этого не видно
У меня почему-то на офисных компах из 2007го с 255 мб оперативки не тормозит, а у вас - тормозит. Любопытно. Может, это не мне чего-то там повидать стоит?)
Цитата: Igors от Июль 29, 2016, 12:08
Насколько я понял (мельком глянув Qt доку), QML позволяет легко и быстро создавать разнообразные эффекты прямо "ис каропки". Мне это не нужно (или нужно редко), поэтому QML не пользуюсь.
Там есть пак шейдер эффектов, но это не QML, это библиотека к нему. Так или иначе свои шейдеры придется писать руками.
«
Последнее редактирование: Июль 31, 2016, 03:41 от Komorebi
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: ListView GridView и подобные вью жрут память
«
Ответ #39 :
Июль 31, 2016, 07:45 »
Цитата: Komorebi от Июль 31, 2016, 03:21
Там есть пак шейдер эффектов, но это не QML, это библиотека к нему. Так или иначе свои шейдеры придется писать руками.
GLSL - весьма низкоуровневое, специфическое и трудоемкое программирование. Если, по Вашему мнению, его использование неизбежно - это плохая реклама QML
Записан
BuRn
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #40 :
Июль 31, 2016, 12:38 »
Цитата: BuRn от Июль 29, 2016, 10:53
Цитировать
Значит ты мало еще в этой жизни повидал, давно работаю с ним и поверь, оно тормозит. Хотя конечно на и7 с 16гб оперативной памятью этого не видно
У меня почему-то на офисных компах из 2007го с 255 мб оперативки не тормозит, а у вас - тормозит. Любопытно. Может, это не мне чего-то там повидать стоит?)
Приложение hello world конечно не тормозит, что-то более весомое и ты удивишься. Наше приложение как минимум занимает 200 мб памяти, так что у вас оно бы колом совсем стало
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: ListView GridView и подобные вью жрут память
«
Ответ #41 :
Июль 31, 2016, 14:34 »
Цитата: Igors от Июль 31, 2016, 07:45
GLSL - весьма низкоуровневое, специфическое и трудоемкое программирование. Если, по Вашему мнению, его использование неизбежно - это плохая реклама QML
Что за глупость?
GLSL может быть плохой рекламой исключительно OpenGL, но никак не QML, где его использование вовсе не обязательно.
Записан
Отражение луны
Гость
Re: ListView GridView и подобные вью жрут память
«
Ответ #42 :
Июль 31, 2016, 18:31 »
Цитата: Igors от Июль 31, 2016, 07:45
GLSL - весьма низкоуровневое, специфическое и трудоемкое программирование. Если, по Вашему мнению, его использование неизбежно - это плохая реклама QML
Есть готовый набор эффектов. Их много, и их хватает. Но даже если нужного эффекта нет - написать с использованием QMLных шейдерэффектов его будет куда проще и эффективнее. Фича в том, что в качестве текстур можно использовать QMLлные объекты. То есть если тебе хочется применить свой кастомный шейдерэффект к фоточке - тебе нужно написать только конкретный GLSL, не заморачиваясь о других деталях, и по мне так это отличная реклама для данной технологии, учитывая, что готовых шейдеров под абсолютно все жизненные ситуации нет ни в одном фреймворке, а стандартные имеющиеся готовы реализовать большинство среднестатистических потребностей, и их база постоянно растет.
Цитата: BuRn от Июль 31, 2016, 12:38
Приложение hello world конечно не тормозит, что-то более весомое и ты удивишься. Наше приложение как минимум занимает 200 мб памяти, так что у вас оно бы колом совсем стало
Если все правильно завязать на event loop - тормозов попросту не будет. Я написал не одно приложение используя данную технологию в качестве основы, и все было супер. Анимации на 60 фпс без каких-либо проседаний. При этом я не экономил на вышеупомянутых шейдерэффектах и прочих вещах, а помимо самого интерфейса в qml так же вертелась куча бизнеслогики, в т.ч. работа с SQL.
Если что-то и будет тормозить - так это сишный код, при условии того, что он написан так, чтобы давать фризы и создавать iowait.
Потребление памяти - вопрос совершенно другого плана. 200 мб в 2016м году это вполне приемлемо. Оперативная память - дешевый ресурс, гораздо дешевле тактовой частоты проца, потому пусть лучше жрет память, чем нагружает проц под потолок. И, пожалуйста, не говорите, что между потреблением этих ресурсов нет никакой зависимости.
«
Последнее редактирование: Июль 31, 2016, 18:41 от Komorebi
»
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: ListView GridView и подобные вью жрут память
«
Ответ #43 :
Июль 31, 2016, 20:53 »
Цитата: Komorebi от Июль 31, 2016, 18:31
Оперативная память - дешевый ресурс, гораздо дешевле тактовой частоты проца, потому пусть лучше жрет память, чем нагружает проц под потолок.
Ага, скажите об этом эмбедщикам или автомотивщикам, они, я уверен, оценят шутку
Вот вы серьезно утверждаете, что между приложением на C++ и на QML абсолютно не будет разницы в производительности?
Чем докажете?
Записан
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 не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: ListView GridView и подобные вью жрут память
«
Ответ #44 :
Август 01, 2016, 06:38 »
Цитата: Komorebi от Июль 31, 2016, 18:31
Но даже если нужного эффекта нет - написать с использованием QMLных шейдерэффектов его будет куда проще и эффективнее. Фича в том, что в качестве текстур можно использовать QMLлные объекты. То есть если тебе хочется применить свой кастомный шейдерэффект к фоточке - тебе нужно написать только конкретный GLSL, не заморачиваясь о других деталях, ...
За свою жизнь я написал пока один GLSL шейдер
Правда большой. Отладка длилась полгода (разнообразные карты юзеров). Сейчас мой шейдер пора апдейтить, но мы с удовольствием наймем человека, мои способности слабоваты. Так что если GLSL "такой хароший" - см раздел "объявления" здесь.
Что касается "подкрашивания пикселей" (именно такие шейдеры я видел для QML), то куда проще сделать это в QImage, навязывание GLSL не есть достижение.
Вот я привел пример кастомного эффекта - и как-то не увидел "дизайнерской жилки" у "ребят QML 120+"
Ну ладно, в коробке нет(?), дальше что? Да ничего, ни одной мысли не прозвучало.
Цитата: Komorebi от Июль 31, 2016, 18:31
..а стандартные имеющиеся готовы реализовать большинство среднестатистических потребностей, и их база постоянно растет.
Применяя "крутой" стандартный эффект, не возникает мысли/беспокойства типа
Цитировать
А если другой ребятенок QML применит тот же стандартный? Может цена всему этому "рупь ведро", т.к. оно у всех уже есть?
Записан
Страниц:
1
2
[
3
]
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...