|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|
Почему Qt такой медленный?30.07.2024, 00:48. Показов 7736. Ответов 89
Метки нет (Все метки)
Одинаковый код на JavaScript выполняется быстрее, чем на Qt. Отладочная версия проги на Qt вообще тормозит жутко. Релизная версия работает быстрее, но все равно уступает JS. Это просто смешно. Как можно проиграть коду, выполняемому в браузере. Какой тогда толк, что там С++?
Немного о проге на Qt. Там много операций выполняется с QString. Например, поиск индекса первого появления символа в строке, добавление символов к строке и т.д. Когда размер строки достигает 25к и больше, то начинаются тормоза. В проге также постоянно получаю или присваиваю текст виджетам QTextEdit.Написал одинаковую прогу на HTML + CSS + JS. Файл занимает всего 10 КБ. В качестве аналога QTextEdit использовал HTML элемент textarea. Прога выполняется в браузере очень быстро. Респект движку V8.Стоит ли попробовать поменять QString на std::string, работать с последним, а потом конвертировать в QString для вывода на виджет?
1
|
|
| 30.07.2024, 00:48 | |
|
Ответы с готовыми решениями:
89
Почему Wi-Fi такой медленный? Почему Windows такой медленный по сравнению с linux
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|
| 27.08.2025, 19:17 [ТС] | |
|
Geek Geekson, я проверил
wxStyledTextCtrl из wxWidgets и оказалось, что он справляется с большими строками. Как писал выше, wxStyledTextCtrl использует библиотеку Scintilla. Эта же библиотека используется в Notepad++ и в некоторых IDE. Т.е. это мощная штука. Там есть и нумерация строк, и подсветка синтаксиса и прочее, как это бывает в текстовых редакторах. Приложение в архиве, можешь сам убедиться, что в текстовое поле вставляется длинная строка без переносов. Если приложения со статической линковкой на wxWidgets выходит до 8 МБ, то тут вышло 11,4 МБ. Но это не много, если сравнивать с Qt.
1
|
|
| 27.08.2025, 19:40 | |
|
Не по теме: Royal_X, спасибо за пример. Кстати на "Edit" почему-то Касперский параноит: https://www.virustotal.com/gui... ?nocache=1
0
|
|
| 27.08.2025, 19:43 [ТС] | |
|
0
|
|
|
3 / 3 / 0
Регистрация: 12.07.2022
Сообщений: 216
|
||
| 27.08.2025, 20:09 | ||
|
Royal_X, потестил твои примеры на непрерывной строке 9 млн символов: wxStyledTextCtrl заметно тормозит (вставка ~1 c, правка ~3 c). Но QPlainTextEdit конечно такое будет жевать с минуту. А Edit на той же строке вообще без тормозов (и правка тоже).
Не по теме:
0
|
||
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|
| 27.08.2025, 20:14 [ТС] | |
|
Geek Geekson, а MFC ты потестил?
0
|
|
| 27.08.2025, 20:47 | |
|
Не по теме: Royal_X, сорри, ни в VS ни с MFC пока не работал, надо разобраться, пока руки не дойдут.
0
|
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|
| 27.08.2025, 22:02 [ТС] | |
|
Geek Geekson, ладно, я сам проверил. MFC работает так же быстро, что и натив. Приложение в архиве во вложении.
Я сейчас выставил лимит на 2 млрд символов. Но мне кажется, что можно аж до 2^31 символов (2.1 млрд). По сути, в MFC я использовал Rich 2, который ограничен до 2^31 символов. На практике, ограничено памятью устройства, поскольку никто не будет столько символов засовывать в Edit. Но вот на чистом WinAPI можно даже Rich 4.1 прикрутить (в примере выше как раз был он, но с ограничением на 16М). Там вообще нет ограничения. Но все это уже чрезмерно. MFC вполне пригоден. И кстати, для него в Visual Studio есть дизайнер, так что можно разрабатывать интерфейс через дизайнер, как в Qt.
1
|
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|
| 27.08.2025, 22:11 [ТС] | |
|
Geek Geekson,
Итак, если сортировать по мощи, то будет так (от мощного к слабому): WinAPI MFC wxWidgets Qt Но так же само список будет выглядеть и по сложности разработки. Так, что если wxWidgets устраивает (он не такой медленный как Qt, а на уровне Notepad++), то советую выбрать его. К тому же, в wxWidgets такая же мощная система layout, как в Qt. Если нужны строки прям на 10М+, то выбирай MFC. Но тут возня с управлением макетом. Есть только банальное выравнивание по сетке. WinAPI же можно выбрать только если создается оконное приложение с неизменяемым размером, ведь там нет вообще управления макетом, надо все вручную.
0
|
|
|
Нарушитель
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
|
|||
| 27.08.2025, 22:38 [ТС] | |||
|
Geek Geekson, можно попробовать еще WinUI 3. Там уже будет современный интерфейс с ускорением DirectX. Но как будет работать Edit - я не знаю, ведь там уже XAML.
WinUI 3 это как QML в Qt, т.е. интерфейсы нового поколения, с анимацией, с эффектами на граф. ускорении. Кстати, многие современные приложения винды, начиная от Проводника, используют WinUI 3. Блокнот тоже. Добавлено через 8 минут Добавлено через 5 минут Geek Geekson, я вот читаю в интернете, говорят, что из VS убрали XAML Designer для WinUI 3. Я выше писал, что там есть дизайнер, но оказывается, что его уже нет.
Добавлено через 3 минуты Geek Geekson, поэтому, если хочешь настроить интерфейс через дизайнер, как в Qt, то выбирай wxWidgets + wxFormBuilder. Не думаю, что тебе нужно создать прогу круче Notepad++. Так что Scintilla должна полностью устроить. Иначе, остается MFC. Там есть дизайнер в VS для MFC, но делает только банальные вещи, без полноценного управления макетом...
1
|
|||
| 27.08.2025, 22:38 | |
|
Медленный вай фай, почему? Медленный ввод в текстовые поля / медленный отклик в google chrome? Почему скорость обмена информации с сервера очень медленный Почему любой первый запрос медленный, а остальные быстрее? Почему если Лисп такой хороший, почему он не популярен? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|