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

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

11 ответов

14 просмотров

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

А зачем человеческому глазу видеть как по 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 строк, а если нужно пролистать выше - погружаться из файла или ещё откуда-то где логи лежат.

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

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

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
8
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Всем привет! Взялся портировать модули на 18 версию, лезет _logger.log(log_level, 'no translation language detected, skipping translation %s', frame, stack_info=True) А чт...
Max Lit
3
Карта сайта