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

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

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

17 ответов

6 просмотров

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.

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

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

А ещё docker можно к ассемблеру прикрутить. В целом, системы сборки это настолько несвязанная вещь... Это оффтоп, можно сказать, во всех чатах. Это просто проект, который помо...
КТ315
22
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Вопрос всем обфускаторщикам — ЗАЧЕМ?
Александр Белокопытов
20
вот еще вопрос ошибка app/Main.hs:135:13: error: [GHC-83865] • Couldn't match type: MoveInfo -> Coords with: (Int, Int) Expected: Coords ...
Fedor
21
Вот правильно, на пользователя давать роли и расширять функционал и авторизацию в зависимости от роли. А теперь вопрос, был ли у кого-то кейс, что бы, например, имея роль: а...
Alex Molchanov
5
Всем привет, если выскакивает ошибка при попытке зайти в админку, что это может быть? Как исправить? Перенос сайта на новый хостинг. Версия php 7.4.33 -> 7.4.5 Версия evo 1....
Михаил
16
получается, что он находит одинаковое колво тегов, с разными именами, или я что тто не понял в таксоупе ?
Fedor
46
моя цель не тратить время на инструменты, которые мне не подходят и которые не будешь переписывать под себя. Я не буду переписывать ОРМ, а вполне можно на макросах сделать нор...
Oleh Nerzh
2
Добрый день, честно не у кого больше спросить, кто то интегрировал Sentry и Лдап? Версия у меня 24.... пытался сделать по аналогии с данной инструкцией https://yyhh.org/blog/2...
Михаил
4
Посоветуйте компонент типа TMemo, чтоб можно было выделять текст (например, болдом найденные при поиске слова). Что-то, может, есть более удобное, чем TRichEdit? И чтоб можно ...
Eugene Krasnikov (ᴊɪɴ x)
17
Карта сайта