MAX
Подпишись
стань автором. присоединяйся к сообществу!

Кстати, а вы знали, что на «Сделано у нас» статьи публикуют посетители, такие же как и вы? И никакой премодерации, согласований и разрешений! Любой может добавить новость. А лучшие попадут в наш Телеграм @sdelanounas_ru. Подробнее о том как работает наш сайт здесь👈

Источник: sdelanounas.ru

Комментарии 0

Для комментирования необходимо войти на сайт

  • 2
    Нет аватара guest17.12.15 16:00:57

    Там, как я понял, используются «толстые» бинарники и многопроходный оптимизирующий транслятор, который работает прозрачно для ОС. При первом запуске — выполняется голая JIT-компиляция практически без оптимизаций (код при этом складывается в дополнительную ветку бинарника), и одновременно производится автоматическое профилирование исполнения, на базе данных которого при следующей загрузке уже сгенерированный код прогоняется через оптимизации, и так до трёх раз, со всё более глубоким набором оптимизаций, пока в итоге не получится код, практически аналогичный по производительности изначально скомпилированному под Эльбрус. Да, несколько первых запусков программы будут сильно проигрывать в производительности, но зато падает общее время реакции, не надо ждать пока оно всё будет полчаса перекомпилироваться при первом запуске.

    • 2
      Нет аватара guest17.12.15 17:36:10

      Понятно, в принципе вес верно. Но, все-таки еще такой вариант — при установке программы (которая вообще происходит только 1 раз) — почему тогда не сделать эту оптимизацию? В конце-концов можно даже спросить у пользователя- хочет он подождать 15-20 минут перекомпиляции программы. с тем чтобы потом при запуске она открывалась быстрее и работала быстро? Тогда же вообще не будет задержек — уже будет готовый оптимизированный код для запуска, просто дополнительное место на жестком диске потребуется.

      • 1
        Нет аватара guest11.01.16 05:01:28

        Потому что это изначально фича для программ, вообще не подозревающих об Эльбрусе. Если уж делать особый инсталлятор, то тогда есть смысл вообще программу просто изначально под Эльбрус откомпилировать штатным компилятором, и не сношать никому моск.

      • 0
        RadiantConfessor RadiantConfessor04.02.16 03:47:07

        Чтобы набрать правильную статистику условных переходов необходимо непосредственно исполнить код, а не просто ретранслировать.

    • 0
      shigorin shigorin19.09.17 21:38:20

      Не, там не толстые, а многослойное оптимизирование/кэширование результатов JIT имеющихся обычных x86-бинарников. Теперь уже знаю больше