185 похожих чатов

Вопрос по оптимизациям - какие самые самые главные оптимизации? То

есть те, что по правилу Парето выдают 80% эффекта? Это удаление мёртвого кода, общие выражения, встраивание процедур (inline) и что ещё?

17 ответов

21 просмотр

Peephole скорее всего

Loop unrolling, loop-invariant code motion, ещё всякое. Там возле Ruby JIT (MIR?) этот вопрос обсуждался.

я бы ещё добавил constant propagation и его усовершенствованные варианты

Alexander Chichigin
Loop unrolling, loop-invariant code motion, ещё вс...

Ну loop unroll я тогда бы дополнил программной конвейеризацией

Konstantin-Romanov Автор вопроса
Alexander Chichigin
Loop unrolling, loop-invariant code motion, ещё вс...

Проблема телеги в том, что это всё тонет в С++ спаме на 300 реплик.

это важно для in-order и vliw, а для OoO толку не много, в 80% скорее всего не попадёт

copy propagation/coalescing, обычно это часть регаллокатора, планировщик

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

Konstantin Romanov
Проблема телеги в том, что это всё тонет в С++ спа...

Let me Google that for you: https://developers.redhat.com/blog/2020/01/20/mir-a-lightweight-jit-compiler-project 😊

piv
это важно для in-order и vliw, а для OoO толку не ...

Мб, но к unroll оно прямо-таки просится. Помнится, полезность конвейеризации в драгонбуке рассказывали именно через unroll:)

Konstantin-Romanov Автор вопроса
Alexander Chichigin
Let me Google that for you: https://developers.red...

Аааа!!! Я не понял - думал, что обсуждалось тут, в репликах рядом с обсуждением Ruby.

Mar Ort
copy propagation/coalescing, обычно это часть рега...

Хотя вообще не уверен, что прямо так выделяется что-то в 80%, оно все по чуть-чуть и работает вместе, потому что оптимизации друг друга усиливают

Viktor Shamparov
Нет, именно конвейеризацией, очень мощная штука дл...

Да, это очень важная оптимизация для спецпроцессоров и ускорителей. И там очень большое поле для исследований.

Самые главные — алгоритмические оптимизации, которые влияют на асимптотическую сложность :) Понимаю, что вопрос не об этом, поэтому предлагаю посмотреть, что реализовано в популярных JIT-компиляторах, в том же MIR.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта