Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

бабушкин зайчик
как ассемблер то может быть "ни при чём", если итоговая производительность зависит от
потока его инструкций...

Легко: низкоуровневая оптимизация кода способна дать 2-5% прироста производительности, в
то время как смена алгоритма решения задачи - на порядки (да, в 10-100 раз).

Posted via ActualForum NNTP Server 1.5

29 апр 21, 16:40    [22316463]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 205
Dimitry Sibiryakov
бабушкин зайчик
как ассемблер то может быть "ни при чём", если итоговая производительность зависит от
потока его инструкций...

Легко: низкоуровневая оптимизация кода способна дать 2-5% прироста производительности, в
то время как смена алгоритма решения задачи - на порядки (да, в 10-100 раз).

это конечно, не спорю, но алгоритм то всё равно асм выдаст другой...
другое дело, что сравнивать разный асм-код это довольно трудоёмко и, в целом, неправильно
но это только для нас, людей, нам проще алгоритмы мерять и производительность
29 апр 21, 16:45    [22316466]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Dimitry Sibiryakov

бабушкин зайчик
как ассемблер то может быть "ни при чём", если итоговая производительность зависит от
потока его инструкций...

Легко: низкоуровневая оптимизация кода способна дать 2-5% прироста производительности, в
то время как смена алгоритма решения задачи - на порядки (да, в 10-100 раз).

Низкоуровневая может дать и больше. Я думаю что все зависит от удачно подобранных ключей оптимизации.
Но если мы соберем Qt/NonQt сборки для одного алгоритма для целевого ассемблера x86 и увидим что разницы нет,
(благодаря какой-то там оптимизации) а Зайчик в это время соберет этот-же алгоритм для своего Ардуино и окажется
что для его стека разница есть и очень даже - и что мы будем с этим фактом делать? Вот поэтому асм и контроллер
важен.
29 апр 21, 16:54    [22316471]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

QtCreator - написан с применением Qt.
Code::Blocks - написан без Qt.
Функциональность примерно одинаковая.
Можешь сравнить быстродействие, алгоритмы и asm.
Удачи.

Posted via ActualForum NNTP Server 1.5

29 апр 21, 16:54    [22316473]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 205
если под "низкоуровневой" подразумевается именно правка ассемблера, то это не мой случай, я в такой правке никакого смысла не вижу (даже на микроконтроллерах проще C заюзать), потому что голый асм мало того, что сложно поддерживать, так он ещё и разный на разных платформах
а толку 0, ибо C выдаст такой же асм сегодня
а C++ выдаст такой же асм, как и C (но это не точно)

Сообщение было отредактировано: 29 апр 21, 16:54
29 апр 21, 17:02    [22316475]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

Тогда зачем ты вообще в заголовке asm упомянул?

Posted via ActualForum NNTP Server 1.5

29 апр 21, 17:31    [22316486]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 205
как критерий качества
но правильнее было про производительность спросить
29 апр 21, 17:44    [22316498]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Dima T
Member

Откуда:
Сообщений: 15795
бабушкин зайчик
Dimitry Sibiryakov
пропущено...

Легко: низкоуровневая оптимизация кода способна дать 2-5% прироста производительности, в
то время как смена алгоритма решения задачи - на порядки (да, в 10-100 раз).

это конечно, не спорю, но алгоритм то всё равно асм выдаст другой...

У тебя каша в голове. Компилятор алгоритм не меняет. Например сумму чисел от M до N можно считать в цикле, а можно по формуле суммы арифметической прогрессии. Так вот компилятор не заменит цикл на формулу.
29 апр 21, 18:45    [22316517]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 205
цикл нет (пока), но про оптимизации ты же слышал? Для них даже придумали -O123
В твоей формуле может быть херня с лишним вызовом функций, или неэффективно использованный кэш, невыровненные данные, и т.п.
тогда он перелопатит твой код и asm будет другой, нежели без -O
нонешние компиляторы уже довольно "умные"

Сообщение было отредактировано: 29 апр 21, 20:40
29 апр 21, 20:47    [22316564]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
бабушкин зайчик,
Действительно. Назвали бы тему микроконтроллеры. А не Qt для формошлепства.
Может попробуете по новой?
Вас ГУИ чтобы тыкать мышкой не интересует.
29 апр 21, 21:16    [22316568]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 205
меня интересуют не микроконтроллеры, а Qt
29 апр 21, 21:21    [22316571]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
бабушкин зайчик,
Разверните фразу.
Фреймворк Qt это дельфи для линукса.
29 апр 21, 21:33    [22316574]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
бабушкин зайчик,
Значит вы еще не оформились в своих хотелках.
Просите Qt а выше разговоры про компиляторы и их алгоритмы
29 апр 21, 21:47    [22316577]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6493
бабушкин зайчик
меня интересуют не микроконтроллеры, а Qt

Qt считается весьма компактным (в коммерческой версии) и быстрым.
Есть масса примеров применений и сравнений скорости.

Для внедряемых систем коммерческая лицензия очень дорогая.

PetroNotC Sharp
бабушкин зайчик,
Разверните фразу.
Фреймворк Qt это дельфи для линукса.

Это примитивное мнение. Qt - это что то вроде WPF/UWP, гораздо более продвинутое.
29 апр 21, 22:06    [22316584]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Siemargl,
Я писал и на wpf и на дельфи.
Там XAML а там dfm.
Разница не столь большая для обсуждения.
29 апр 21, 22:25    [22316587]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6493
PetroNotC Sharp
Siemargl,
Я писал и на wpf и на дельфи.
Там XAML а там dfm.
Разница не столь большая для обсуждения.

Значит ты не понял MVVM, которого в Дельфе нет.

Впрочем, я тоже =)
29 апр 21, 22:55    [22316595]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Dima T
Member

Откуда:
Сообщений: 15795
бабушкин зайчик
цикл нет (пока), но про оптимизации ты же слышал? Для них даже придумали -O123
В твоей формуле может быть херня с лишним вызовом функций, или неэффективно использованный кэш, невыровненные данные, и т.п.
тогда он перелопатит твой код и asm будет другой, нежели без -O
нонешние компиляторы уже довольно "умные"

Я не считаю это изменением алгоритма. Назовем это адаптацией под процессор. Там же достаточно банальные преобразования делаются.
ИМХО Основной выигрыш дает инлайн коротких функций/методов, т.к. стандартный вызов имеет оверхэд в виде записи в стэк параметров, регистров процессора и последующего их восстановления.
Как уже выше сказали это дает не более 5% ускорения.
30 апр 21, 07:36    [22316646]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
Siemargl,
Да. Есть небольшие различия... Но не в ассемблере)))
30 апр 21, 07:37    [22316648]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 205
Dima T
Я не считаю это изменением алгоритма. Назовем это адаптацией под процессор. Там же достаточно банальные преобразования делаются.

там делаются любые преобразования, до тех пор, пока компилятор уверен, что ничего не попортит
т.е. если всё прозрачно и недвусмысленно, то он сделает оптимизацию
А если там вариант "может быть программисту так надо", тогда не сделает
Dima T
ИМХО Основной выигрыш дает инлайн коротких функций/методов,

ну а как же циклы, матрицы, кэш-миссы? В играх (и не только) такие косяки убьют всё.
30 апр 21, 15:42    [22316972]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Dima T
Member

Откуда:
Сообщений: 15795
бабушкин зайчик
там делаются любые преобразования, до тех пор, пока компилятор уверен, что ничего не попортит ...

Не попортит что? Наверно алгоритм задуманный разработчиком. Вот и получается что алгоритм важнее, а оптимизации вторичны.
30 апр 21, 18:18    [22317039]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
бабушкин зайчик

там делаются любые преобразования, до тех пор, пока компилятор уверен, что ничего не попортит
т.е. если всё прозрачно и недвусмысленно, то он сделает оптимизацию
А если там вариант "может быть программисту так надо", тогда не сделает
Dima T
ИМХО Основной выигрыш дает инлайн коротких функций/методов,

ну а как же циклы, матрицы, кэш-миссы? В играх (и не только) такие косяки убьют всё.

Это нужно рассматривать в контексте "алгоритма и структур данных". Еще не создали
компиллятора или фреймворка который будет cache-friendly.
1 май 21, 17:49    [22317272]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
White Owl
Member

Откуда:
Сообщений: 12733
mayton
Это нужно рассматривать в контексте "алгоритма и структур данных". Еще не создали
компиллятора или фреймворка который будет cache-friendly.
Почему это вдруг "не создали"? А GCC тебе чем не кеш-френдли? Просто скажи ему для какого процессора надо делать - сделает. Да ему даже можно указывать конкретные размеры кешей, отдельно для L1 и для L2 если у тебя какой-то необычный процессор.
1 май 21, 19:31    [22317284]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
А где-то есть оценка такой супероптимизации для "обычных" условий?
Или, всё-таки, "подгонкой под кэш" занимаются только те, кто может обеспечить "монополизацию" процессора своим приложением?
2 май 21, 11:19    [22317404]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
White Owl
mayton
Это нужно рассматривать в контексте "алгоритма и структур данных". Еще не создали
компиллятора или фреймворка который будет cache-friendly.
Почему это вдруг "не создали"? А GCC тебе чем не кеш-френдли? Просто скажи ему для какого процессора надо делать - сделает. Да ему даже можно указывать конкретные размеры кешей, отдельно для L1 и для L2 если у тебя какой-то необычный процессор.

Я не хочу указывать конкретные размеры кешей. Мне это и не надо. Я не знаю какой будет целевой кеш и процессор.

Я хочу хотя-бы на элементарном уровне разложить свои данные на 2 кучки. Одна кучка - меня интересует
в кеше. На другую мне - плевать. По аналогии с Oracle опцией buffer_pool = { KEEP | DEFAULT }
2 май 21, 11:31    [22317409]     Ответить | Цитировать Сообщить модератору
 Re: кто-то сравнивал asm от Qt и обычный?  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 205
mayton
Я хочу хотя-бы на элементарном уровне разложить свои данные на 2 кучки. Одна кучка - меня интересует в кеше. На другую мне - плевать.

они всегда будут в кэше...
А ты можешь лишь разложить данные по структурам и подогнать их под cache-line

Сообщение было отредактировано: 2 май 21, 14:51
2 май 21, 14:59    [22317484]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / C++ Ответить