Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601

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

30.07.2024, 00:48. Показов 7520. Ответов 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
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 11:40  [ТС]
Студворк — интернет-сервис помощи студентам
Вот проект.
В отладочной версии тормоза заметны уже на 25к-30к. В релизной на 80k
Вложения
Тип файла: zip QPlainTextEdit.zip (2.2 Кб, 15 просмотров)
0
Модератор
Эксперт Java
 Аватар для alecss131
2895 / 1401 / 412
Регистрация: 11.08.2017
Сообщений: 4,488
Записей в блоге: 2
30.07.2024, 11:56
Идея просто ради бреда.
А если проект собрать в wasm? Qt такое поддерживает, то есть по сути плюсовый кутэшний код будет выполняться в браузере. Будет ли скорость сопоставима с чистым js интересно. Только у меня на компе нету qt и wasm компилятора
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
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
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
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 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:01
Загрузил текст (svg) 162 кб, даже намеков на тормоза нет. (Под линуксом) Как они у вас проявляются?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
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 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:03
2.8 мегабайта текста - нет ни намека на тормоза
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 12:05  [ТС]
Цитата Сообщение от Annemesski Посмотреть сообщение
6.7.2
там просто MSVC 2019, а у меня уже стоит 2022 версия
0
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:10
Вообще я долгое время очень плотно использовал Kate он написан на Qt ю Вот его исходники так там не просто текст, там и подсветка синтаксиса (собственно с плагинами его можно настроить до состояния полноценной IDE). Не могу его назвать тормозным. Как раз в основном чаще запускал именно для быстроты. в т.ч. на слабых компах.

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

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

Добавлено через 28 секунд
Выложи архив с проектом минимальным, где это воспроизводится (лучше zip).
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
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 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:33
Судя по видео у вас весь файл одной строкой. Подозреваю дело в этом. Для эксперимента сделал строку на 750кб теперь вижу подтормаживание при наборе текста (правда не такое сильное как у вас)

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

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

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

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

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

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

(у меня кстати тормоза где то уже когда за 500-600кб перевалило.)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
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
Ответ Создать тему
Новые блоги и статьи
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru