C++ данные через append добавляю к QString, потом сигнал обновление. На больших объемах начинает тормозить очень. Отчключая разные части пришел к выводу, что тормозит именно вывод в QML. Как можно проще ускорить не особо ломая логику? Пока что на ум приходит - обновлять не по событию добавления записи в лог, а по таймеру пореже, так как записи добавляются часто(примерно 1мС +-)
думаю тебе не нужен весь тект, рисуешь ты же только малую часть
А зачем человеческому глазу видеть как по 1 милисекунде добавляется запись ?)?)
абсолютно незачем, так просто логика проще получалась. Добавили - обновили.
можно выводить в ListView. будет быстрее и сортировать/фильтровать проще
Рисую малую часть, но нужно иметь возможность пролистать и посмотреть весь лог
догрузишь. вообще не понятно "больште объемы" это сколько? если данных на гигабайты то тут много кто испытывает трудности
20к символов примерно и начинаются проблемы. Хотя опять же, датарейт большой. Возможно снижу датарейт и будет ок
А я правильно понимаю, что через listView будет работать быстрее за счет того, что обновляться будет только видимая часть?
не только. для TextArea тебе нужно каждый раз пересобирать QString.
Т.е. мне сейчас проще всего данные хранить в QStringList и скормить это в качестве модели для listView. Так?
Ну это самый просто вариант, но не спасёт на больших обьемах, похорошему - нормальную модель сделать, где постоянно "болтаться" будут последние N строк, а если нужно пролистать выше - погружаться из файла или ещё откуда-то где логи лежат.
Обсуждают сегодня