Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624

Почему Qt такой медленный?

30.07.2024, 00:48. Показов 7572. Ответов 89
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Одинаковый код на JavaScript выполняется быстрее, чем на Qt. Отладочная версия проги на Qt вообще тормозит жутко. Релизная версия работает быстрее, но все равно уступает JS. Это просто смешно. Как можно проиграть коду, выполняемому в браузере. Какой тогда толк, что там С++?

Немного о проге на Qt. Там много операций выполняется с QString. Например, поиск индекса первого появления символа в строке, добавление символов к строке и т.д. Когда размер строки достигает 25к и больше, то начинаются тормоза. В проге также постоянно получаю или присваиваю текст виджетам QTextEdit.

Написал одинаковую прогу на HTML + CSS + JS. Файл занимает всего 10 КБ. В качестве аналога QTextEdit использовал HTML элемент textarea. Прога выполняется в браузере очень быстро. Респект движку V8.

Стоит ли попробовать поменять QString на std::string, работать с последним, а потом конвертировать в QString для вывода на виджет?
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2024, 00:48
Ответы с готовыми решениями:

Почему Wi-Fi такой медленный?
Есть жесткий диск на 500Gb и USB 3.0. Есть Wi-Fi роутер ASUS Wireless RT-N10U (300 Mbit) с USB 2.0. Есть ноутбук с Wi-Fi bgn. ...

Почему Windows такой медленный по сравнению с linux
Я поставил себе linux на один комп, а на другом стоит Windows, при этом Windows съедает у меня 512 оперативки и при этом долго думает а...

Почему такой способ копирования значений байт Bitmap медленный?
public static byte BitmapToByteRgbNaive(Bitmap bmp) { int width = bmp.Width, height = bmp.Height; byte res = new...

89
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 11:40  [ТС]
Студворк — интернет-сервис помощи студентам
Вот проект.
В отладочной версии тормоза заметны уже на 25к-30к. В релизной на 80k
Вложения
Тип файла: zip QPlainTextEdit.zip (2.2 Кб, 15 просмотров)
0
Модератор
Эксперт Java
 Аватар для alecss131
2897 / 1403 / 412
Регистрация: 11.08.2017
Сообщений: 4,494
Записей в блоге: 2
30.07.2024, 11:56
Идея просто ради бреда.
А если проект собрать в wasm? Qt такое поддерживает, то есть по сути плюсовый кутэшний код будет выполняться в браузере. Будет ли скорость сопоставима с чистым js интересно. Только у меня на компе нету qt и wasm компилятора
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 11:58  [ТС]
alecss131, так я могу вообще взять Electron.
0
 Аватар для Annemesski
2691 / 1348 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
30.07.2024, 11:59
Royal_X, у меня не тормозит, то есть вообще, файл 35 кб, вставил текст из него 7 раз (35 * 7 ~ 250 кб) - летает.

Вирт машина: ОС Astra Linux, 4 Гб ОЗУ (в пред посте наврал), 1 проц, 2 ядра, Qt 5.11
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 12:01  [ТС]
Цитата Сообщение от alecss131 Посмотреть сообщение
Будет ли скорость сопоставима с чистым js интересно.
а вообще, оказалось, что не Qt C++ проигрывал JS, а QPlainTextEdit проигрывает HTML элементу textarea

Добавлено через 1 минуту
Цитата Сообщение от Annemesski Посмотреть сообщение
Qt 5.11
у меня Qt 6.9.0 MSVC 2022 64bit
0
3061 / 1465 / 265
Регистрация: 16.03.2008
Сообщений: 6,512
Записей в блоге: 2
30.07.2024, 12:01
Загрузил текст (svg) 162 кб, даже намеков на тормоза нет. (Под линуксом) Как они у вас проявляются?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 12:02  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
Как они у вас проявляются?
сейчас видео сниму
0
 Аватар для Annemesski
2691 / 1348 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
30.07.2024, 12:03
Royal_X, попробуйте откатить Qt к предыдущим релизам (рекомендую 6.7.2)
0
3061 / 1465 / 265
Регистрация: 16.03.2008
Сообщений: 6,512
Записей в блоге: 2
30.07.2024, 12:03
2.8 мегабайта текста - нет ни намека на тормоза
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 12:05  [ТС]
Цитата Сообщение от Annemesski Посмотреть сообщение
6.7.2
там просто MSVC 2019, а у меня уже стоит 2022 версия
0
3061 / 1465 / 265
Регистрация: 16.03.2008
Сообщений: 6,512
Записей в блоге: 2
30.07.2024, 12:10
Вообще я долгое время очень плотно использовал Kate он написан на Qt ю Вот его исходники так там не просто текст, там и подсветка синтаксиса (собственно с плагинами его можно настроить до состояния полноценной IDE). Не могу его назвать тормозным. Как раз в основном чаще запускал именно для быстроты. в т.ч. на слабых компах.

Добавлено через 1 минуту
Кстати в нем частенько именно с текстами большими работаю. Типа загрузить логи ( а это может перевалить и за десятки мегабайт и регекспами с этими логами поработать)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 12:17  [ТС]
Вот видео

там 36к текста в окне, и я начинаю печатать на клаве. Посмотрите внимательно на курсор, когда он мигает, то активен. На видео видно, что я набираю текст, но прога думает, курсор пропадает в это время и я не вижу букв, которые печатаю в реальном времени. Но через какое-то время, буквы появляются кусками. На видео я печатаю с постоянной скоростью. Останавливаюсь и жду пока появится очередная группа букв
Вложения
Тип файла: 7z 2024-07-30 11-14-03.7z (1.10 Мб, 19 просмотров)
0
Эксперт .NET
 Аватар для Usaga
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
30.07.2024, 12:21
Royal_X, вижу тормоза. Но мне кажется, что это какая-то нездоровая тема. Точно что-то ты сделал не так. Не может этот контрол так дико тупить на таком объёме данных.

Добавлено через 28 секунд
Выложи архив с проектом минимальным, где это воспроизводится (лучше zip).
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 12:22  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Точно что-то ты сделал не так.
так я запустил тот проект, что тут выложил. Причем, для видео сделал заново с нуля билд.

Добавлено через 32 секунды
Цитата Сообщение от Usaga Посмотреть сообщение
Выложи архив с проектом минимальным, где это воспроизводится
так это и есть минимальный проект, который я выложил здесь выше

И видео снято на 60 fps, чтобы вы почувствовали всю красоту
0
34 / 25 / 12
Регистрация: 08.11.2018
Сообщений: 94
30.07.2024, 12:28
Присоединяюсь к выше заявившим про отсутствие лагов.
Впихнул QPlainTextEdit в компоновку одного из проектов с множеством виджетов.
3 мегабайта текста из буфера обмена - скролл, ресайз, набор текста - почти без лагов. (еле заметно лагает скролл)
debug, qmake, Qt 6.7.0, win10
0
3061 / 1465 / 265
Регистрация: 16.03.2008
Сообщений: 6,512
Записей в блоге: 2
30.07.2024, 12:33
Судя по видео у вас весь файл одной строкой. Подозреваю дело в этом. Для эксперимента сделал строку на 750кб теперь вижу подтормаживание при наборе текста (правда не такое сильное как у вас)

Но в реальной жизни есть ли такие задачи по работе с одной строкой весом в 30 кб. т.е. даже при однобайтовой кодировке 30тысяч символов в одной строке? При этом это именно визуальный компонент.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 12:38  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
там 36к текста в окне
только я отмечу, что на видео отладочная версия

на релизной тормоза начинаются, когда добавляю 3 раза, со 100к, грубо говоря

Цитата Сообщение от voral Посмотреть сообщение
Судя по видео у вас весь файл одной строкой.
да, знаю, это всегда так. Производительность при одной строке всегда ниже, замечал на Notepad++

Добавлено через 2 минуты
Т.е. в целом, для релизной у меня лаги отсутствуют до 70к где-то. Вы считаете, что это норм для текста из одной строки?
0
Эксперт .NET
 Аватар для Usaga
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,915
30.07.2024, 12:40
Цитата Сообщение от Royal_X Посмотреть сообщение
Вы считаете, что это норм для текста из одной строки?
Лично для меня - да. Это - неадекватный сценарий работы.
0
3061 / 1465 / 265
Регистрация: 16.03.2008
Сообщений: 6,512
Записей в блоге: 2
30.07.2024, 12:43
Цитата Сообщение от Royal_X Посмотреть сообщение
Вы считаете, что это норм для текста из одной строки?
Тут скорее вопросы по адекватности теста. Вот если я на ламборгини нагружу 10тонн, то она будет хреново ездить. Значит ли что она дерьмовая тачка?

У вас визуальный компонент, что за задача стоит перед вами, когда человек будет работать со строкой такой длины. Должны ли разработчики оптимизировать в угоду какой то странной задаче и в ущерб 99% ситуаций?

если у вас стоит задача какая то, может лучше подобрать более подходящее решение.

(у меня кстати тормоза где то уже когда за 500-600кб перевалило.)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,624
30.07.2024, 12:43  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Лично для меня - да. Это - неадекватный сценарий работы.
просто окно textarea моей проги на HTML+CSS+JS не лагает даже при 1М символов (и тоже текст в виде одной строки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2024, 12:43

Медленный вай фай, почему?
Здравствуйте! у меня медленный вай фай. все оплачено такого никогда не было и еще не открывается http://192.168.1.1/ скрин...

Медленный ввод в текстовые поля / медленный отклик в google chrome?
Привет! Может кто знает, Сегодня заметил, что ввод текста в браузере chrome стал очень медленным и отклик тоже. Например, при наборе...

Почему скорость обмена информации с сервера очень медленный
Привет всем....Не могу понять почему скорость обмена информации из базы Mysql очень медленно??? На локальном сервере нормально работает....

Почему любой первый запрос медленный, а остальные быстрее?
первый запрос после установления соединения с БД очень медленный (10 секунд), а последующие такие запросы уже могут пройти за 3 секунды и...

Почему если Лисп такой хороший, почему он не популярен?
Здравствуйте, уважаемые коллеги! Посыплю соль на раны: почему если Лисп такой хороший, почему он не популярен? Мне известны следующие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru