Приветствую! Такой вопрос. QML приложение, через textarea выводится лог. в

C++ данные через append добавляю к QString, потом сигнал обновление. На больших объемах начинает тормозить очень. Отчключая разные части пришел к выводу, что тормозит именно вывод в QML. Как можно проще ускорить не особо ломая логику? Пока что на ум приходит - обновлять не по событию добавления записи в лог, а по таймеру пореже, так как записи добавляются часто(примерно 1мС +-)

11 ответов

7 просмотров

думаю тебе не нужен весь тект, рисуешь ты же только малую часть

А зачем человеческому глазу видеть как по 1 милисекунде добавляется запись ?)?)

Vitaly- Автор вопроса
Mr.Mait
А зачем человеческому глазу видеть как по 1 милисе...

абсолютно незачем, так просто логика проще получалась. Добавили - обновили.

можно выводить в ListView. будет быстрее и сортировать/фильтровать проще

Vitaly- Автор вопроса
mefest
думаю тебе не нужен весь тект, рисуешь ты же тольк...

Рисую малую часть, но нужно иметь возможность пролистать и посмотреть весь лог

Vitaly
Рисую малую часть, но нужно иметь возможность прол...

догрузишь. вообще не понятно "больште объемы" это сколько? если данных на гигабайты то тут много кто испытывает трудности

Vitaly- Автор вопроса
mefest
догрузишь. вообще не понятно "больште объемы" это ...

20к символов примерно и начинаются проблемы. Хотя опять же, датарейт большой. Возможно снижу датарейт и будет ок

Vitaly- Автор вопроса
Макс Воробьев
можно выводить в ListView. будет быстрее и сортиро...

А я правильно понимаю, что через listView будет работать быстрее за счет того, что обновляться будет только видимая часть?

Vitaly
А я правильно понимаю, что через listView будет ра...

не только. для TextArea тебе нужно каждый раз пересобирать QString.

Vitaly- Автор вопроса
Макс Воробьев
не только. для TextArea тебе нужно каждый раз пере...

Т.е. мне сейчас проще всего данные хранить в QStringList и скормить это в качестве модели для listView. Так?

Vitaly
Т.е. мне сейчас проще всего данные хранить в QStri...

Ну это самый просто вариант, но не спасёт на больших обьемах, похорошему - нормальную модель сделать, где постоянно "болтаться" будут последние N строк, а если нужно пролистать выше - погружаться из файла или ещё откуда-то где логи лежат.

Похожие вопросы

Обсуждают сегодня

Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
а я честно сказать не понимаю - нахуя идти учиться на вышку или еще куда-либо и при этом нихуя не делать, типа зачем ? просто корку получить, а нахуй она нужна тогда ?
Eugene Неелов
7
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
зараз якщо створити файл core/custom/define.php з текстом <?php const NO_SESSION = true; можна позбутися сесійних кукі (що зручно, щоб не показувати людям банери про збір та в...
Artur Kyryliuk
1
я бы даже сказал не размер резюме, а слова, которые там написаны, потому что резюме может быть на несколько десятков страниц из-за 20 летнего опыта работы, но там в опыте буде...
Eugene Неелов
2
так а я не могу просто новый сделать ? я пробовал не прокатило но может чето упускаю
Максим
3
Ребят, было ли у вас так, что переменные в WebApp —tg-viewport-height, —tg-viewport-stable-height после метода expand не обновляются, а остаются в размерах, как было до expand...
Black
3
Карта сайта