Рубрика «jit» - 5

enter image description here

В некоторых внутренних системах для быстрого поиска по большому битовому массиву мы в Badoo используем JIT. Это очень интересная и не самая известная тема. И, чтобы исправить такую досадную ситуацию, я перевел полезную статью Элая Бендерски о том, что такое JIT и как его использовать.

Читать полностью »

Когда кто-то произносит слово многоядерный, то мы бессознательно подразумеваем SMP. Это успешно срабатывало для нас до недавнего времени, пока ARM не объявила о big.LITTLE. Архитектура ARM big.LITTLE является первым массово производимым примером архитектуры AMP, и как мы увидим далее, она поднимает планку сложности многоядерного программирования еще выше.
Читать полностью »

PHP-Дайджест № 92 – интересные новости, материалы и инструменты (29 августа – 11 сентября 2016) - 1

Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!

Читать полностью »

Вот и наступила осень. Кто-то возвращается в город с центнером яблок в багажнике, кто-то — c норвежским пивом прямиком с JavaZone, а мы подготовили для вас материал, который, надеемся, скоротает дождливые вечера. Мы расскажем о трёх летних встречах JUG.ru. Посему разработчики, вернувшись из отпусков, имеют замечательную возможность запастись чашкой горячего чая, завернуться в плед и посмотреть видео с наших митапов.

Итак, летом у нас было три встречи:
    — Douglas Hawkins из Azul рассказал об особенностях работы JIT-компиляторов в HotSpot JVM;
    — Alvaro Hernandez, разработчик ToroDB, рассказал о том, как Java работает с PostgreSQL;
    — наконец, Евгений Борисов порадовал нас новой порцией загадок на тему Spring.

Читать полностью »

С рождением PHP 7 не прекращаются споры о деревьях абстрактного синтаксиса, just-in-time компиляторах, статическом анализе и т. д. Но что означают все эти термины? Это какие-то волшебные свойства, делающие PHP гораздо производительнее? И если да, то как это всё работает? В этой статье мы рассмотрим основы работы языков программирования и разъясним для себя процесс, который должен выполняться до того, как компьютер запустит, например, ваш PHP-скрипт.
Читать полностью »

В четверг, 30 июня, в 20:00, в питерском офисе компании Luxoft состоится встреча JUG.ru с Дагом Хокинсом, JVM-инженером в Azul Systems. Тема встречи — особенности работы JIT-компиляторов в HotSpot JVM.

Язык встречи — английский. Участие — бесплатное. Количество мест ограничено, необходима регистрация по ссылке.

Читать полностью »

Говорят, что автомобиль состоит из нескольких (десятков?) тысяч деталей. Задумывались ли вы, как именно происходит синхронизация цепочки поставок в автомобильной промышленности? Кому интересно узнать про разницу между Just-in-Time и Just-in-Sequence, кто и как заносил Toyota Lean Manufacturing Principles в Европу – прошу под кат.

JiT-JiS SCM или «Как делают Автомобили» - 1

Читать полностью »

Сегодня сотрудник Microsoft анонсировал проект LLILC — транслятор MSIL в байткод LLVM от Microsoft - 1LLILC — новый проект для трансляции MSIL в байткод LLVM, предназначенный пока главным образом для инфраструктуры LLILC — транслятор MSIL в байткод LLVM от Microsoft - 2CoreCLR. В ближайшее время он может быть использован для JIT-компиляции, а в дальнейшем и для формирования прекомпилированных сборок (Ahead-of-Time) средствами .NET Native.

Несмотря на то, что в CoreCLR уже есть свой JIT, планируется расширить поддержку различных платформ за счёт LLVM. Новый JIT использует тот же набор внутренних API, что и RyuJIT и бесшовно его заменяет. Таким образом новый JIT позволит .NET-коду выполняться на всех поддерживаемых LLVM-платформах, на которые можно портировать CoreCLR.
Читать полностью »

Сломанный legacy JIT в .NET 4.6 Preview - 1Сегодня я расскажу вам об одной неприятной ситуации, которая связана с JIT в .NET 4.6. Вот несколько фактов:

  • Если вы поставили .NET Framework 4.6 Preview, то у вас по дефолту стоит RyuJIT.
  • Если вы поставили Visual Studio 2015 CTP, то она включает .NET Framework 4.6 Preview, а значит у вас по дефолту стоит RyuJIT.
  • Если вы работаете на Windows 10 Tech Preview, то она также включает.NET Framework 4.6 Preview, а значит у вас по дефолту стоит RyuJIT.
  • Если вы хотите вернуть старый JIT, то это можно сделать с помощью ключа регистра, переменной среды или app.config-настройки useLegacyJit.
  • Если включить useLegacyJit в Windows 8 или Windows 8.1, то вы получите большое количество проблем, связанных с компиляцией и запуском приложений.
  • RyuJIT всё ещё не готов к реальному использованию, некоторые программы могут работать некорректно на нём.

Возможно, я просто что-то не понимаю в этой жизни. Давайте разберёмся в ситуации вместе.Читать полностью »

Генерация кода во время исполнения или «Пишем свой JIT-компилятор» - 1
Современные компиляторы очень хорошо умеют оптимизировать код. Они удаляют никогда не выполняющиеся условные переходы, вычисляют константные выражения, избавляются от бессмысленных арифметических действий (умножение на 1, сложение с 0). Они оперируют данными, известными на момент компиляции.
В момент выполнения информации об обрабатываемых данных гораздо больше. На её основании можно выполнить дополнительные оптимизации и ускорить работу программы.
Оптимизированный для частного случая алгоритм всегда работает быстрее универсального (по крайней мере, не медленнее).
Что если для каждого набора входных данных генерировать оптимальный для обработки этих данных алгоритм?
Очевидно, часть времени выполнения уйдёт на оптимизацию, но если оптимизированный код выполняется часто, затраты окупятся с лихвой.
Как же технически это сделать? Довольно просто — в программу включается мини-компилятор, генерирующий необходимый код. Идея не нова, технология называется “компиляция времени исполнения” или JIT-компиляция. Ключевую роль JIT-компиляция играет в виртуальных машинах и интерпретаторах языков программирования. Часто используемые участки кода (или байт-кода) преобразуются в машинные команды, что позволяет сильно повысить производительность.
Java, Python, C#, JavaScript, Flash ActionScript — неполный (совсем неполный) список языков, в которых это используется. Я предлагаю решить конкретную задачу с использованием этой технологии и посмотреть, что получится.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js