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

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

30.07.2024, 00:48. Показов 7494. Ответов 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
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:46
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
просто окно textarea моей проги на HTML+CSS+JS не лагает даже при 1М символов (и тоже текст в виде одной строки
Просто возмите более подходящий компонент для вашей задачи

Ламборгини - для скорости
БелАЗ - для грузов

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

я тоже исследую критические моменты проги и удивился, что html файл в браузере работает с большими текстами, а Qt виджет нет
0
34 / 25 / 12
Регистрация: 08.11.2018
Сообщений: 94
30.07.2024, 12:48
* прочитал 12.5 мб текста в строку, добавил одной строкой в QPlainTextEdit - нормально работает.
0
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:48
Цитата Сообщение от Royal_X Посмотреть сообщение
а Qt виджет нет
Так вы выбрали не правильный компонент. Вы дейсвительно думаете что на заводе ламборнгини грузят на нее 10 тон, чтоб посмотреть как она себя поведет?
0
 Аватар для Annemesski
2690 / 1347 / 485
Регистрация: 08.11.2016
Сообщений: 3,736
30.07.2024, 12:51
Цитата Сообщение от Usaga Посмотреть сообщение
Лично для меня - да.
Не знаю, запустил проект Royal_X, у себя под астрой на виртуалке: 8Мб текста одной строкой - ни намёка.
0
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:51
Т.е. ситуация у вас именно такая с одной стороны вы взяли один инструмент и подходящую для этого инструмента задачу, с другой стороны взяли похожий инструмент, но с другим назначением и объявили Qt тормозным. Может для чистоты сравнения надо не просто абы как пути решения выбирать, а именно выбирать по условиям задчи
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 12:52  [ТС]
Цитата Сообщение от voral Посмотреть сообщение
Вы дейсвительно думаете что на заводе ламборнгини грузят на нее 10 тон, чтоб посмотреть как она себя поведет?
про "грузить на 10т" не знаю, но спорткары разгоняют до плавления движка

не так кринжово, конечно, а в лабораторных условиях

Кликните здесь для просмотра всего текста
0
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:53
Просто надо понимать, все унифицированные библиотеки это сочетание компромисов и решений в угоду наиболее популярных задач для их применения. Конечно хочется, чтоб в идеале все работало до сих пор на 386 компах без проблем и лагов.... Но се ля ви.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 12:54  [ТС]
Цитата Сообщение от Annemesski Посмотреть сообщение
Не знаю, запустил проект Royal_X, у себя под астрой на виртуалке: 8Мб текста одной строкой - ни намёка.
т.е. проблема все-таки не с размером. Я вот тоже думаю, что 70к - 80к это маловато для релизной
0
3061 / 1463 / 265
Регистрация: 16.03.2008
Сообщений: 6,510
Записей в блоге: 2
30.07.2024, 12:55
Цитата Сообщение от Royal_X Посмотреть сообщение
про "грузить на 10т" не знаю, но спорткары разгоняют до плавления движка
Ну как бы это соответствует в большкй степени задачам спорткаров, нежели перевозить тоннами грузы. Подозреваю что на них даже мешок картошки редко кто возит
0
 Аватар для Annemesski
2690 / 1347 / 485
Регистрация: 08.11.2016
Сообщений: 3,736
30.07.2024, 12:57
Цитата Сообщение от Royal_X Посмотреть сообщение
что 100к это маловато для релизной
я не сказал, это у меня в дебажной сборке. Вероятно основная разница win-nix, возможно в свежем релизе Qt что-нибудь напортачили. Можете собрать под 11 win? Я на реальной машине запущу.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 12:58  [ТС]
Цитата Сообщение от Annemesski Посмотреть сообщение
Можете собрать под 11 win?
да.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 13:04  [ТС]
Собрал релизную Desktop_Qt_6_9_0_MSVC2022_64bit-Release
Вложения
Тип файла: 7z QPlainTextEdit.7z (6.99 Мб, 11 просмотров)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 13:18  [ТС]
Annemesski, запусти прогу и попробуй вставить текст из вложения на 144к символов = 140 КБ, а потом печатать на клаве. У меня жуткие лаги. Это очень странно. Это не так уж много. Даже Блокнот без лагов редактирует. Я не требую от Qt производительности уровня Notepad++. Но ведь что-то на уровне Блокнота он же должен уметь. Тем более, я использую не QTextEdit, а QPlainTextEdit
Вложения
Тип файла: zip TEXT.zip (589 байт, 11 просмотров)
0
 Аватар для Annemesski
2690 / 1347 / 485
Регистрация: 08.11.2016
Сообщений: 3,736
30.07.2024, 13:24
Royal_X, файл 8.197 Мб одна строка текста, 10 вставок, при редактировании и перемещении по тексту ни малейших тормозов. Итоговый файл 81.966 Мб текста - заметных тормозов нет. Есть тормоза при копировании этого объема (82 Мб) в буфер обмена и из буфера обмена, notepad на этом объеме тормозит также, на 8 Мб никаких тормозов и при работе с буфером.

Win11/16Gib RAM/i5-10400 (6 cores/12 threads)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 13:33  [ТС]
Annemesski, вообще загадка. Не знаю из-за чего у меня лаги.
Win 11/ 16Gb RAM/ Core i9 13900H (14 cores; 20 threads)

Добавлено через 3 минуты
Annemesski, ты попробовал мой текст?
0
 Аватар для Annemesski
2690 / 1347 / 485
Регистрация: 08.11.2016
Сообщений: 3,736
30.07.2024, 13:54
Royal_X, забавно, Ваш текст начиная с 32 кБ начнает подтормаживать, на 60-ти уже заметно, все 141 - уже беда... понятно, в моем сгенерированном тексте есть вайтспейсы, если их убрать, то тоже лагает.
1
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 14:11  [ТС]
Annemesski, уже хорошо, что проблема подтверждена.

Я специально тестирую на строках из непрерывных символов без пробелов или переноса строк, ибо именно они склонны лагать уже на небольших размерах. Однако, такая же непрерывная строка даже на 1М не лагает в textarea из HTML

Добавлено через 1 минуту
Цитата Сообщение от Annemesski Посмотреть сообщение
Ваш текст начиная с 32 кБ начнает подтормаживать, на 60-ти уже заметно
на моем ноуте до 70к - 80к норм, а начинает притормаживать с 100к. Вот на 144к уже жутко
а вот отладочная версия лагает уже на 30к

Но этого мало. QPlainTextEdit обязан работать хотя бы на уровне Блокнота винды...
Блокнот редактирует такой текст без переносов и пробелов без всяких проблем.


Просто С++ обрабатывает огромные тексты за миллисекунды (я очень старался над оптимизацией), но вот этот виджет портит впечатление о моей проге. Даже я сперва подумал, что виноват QString, ибо не верил, что какой-то виджет может сдаться на такой малой строке.

Но QString не виноват
0
 Аватар для Annemesski
2690 / 1347 / 485
Регистрация: 08.11.2016
Сообщений: 3,736
30.07.2024, 14:13
Цитата Сообщение от Royal_X Посмотреть сообщение
на моем ноуте
так у меня машинка послабее, да еще 2 виртуалки запущено.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
30.07.2024, 14:16  [ТС]
Annemesski, ну ладно, буду надеяться, что юзер не вставит в этот виджет текст без пробелов и переносов)))

Добавлено через 49 секунд
Будет время, потестирую wxWidgets
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2024, 14:16

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Установка 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 - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru