home.social

#jit — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #jit, aggregated by home.social.

fetched live
  1. I'm thinking of toying with RPython and #LLVM in the future.

    RPython lets you create a dynamically typed interpreted language with a #JIT. It could be cool to port #Lox to this.

    LLVM, which I've heard is really difficult, actually has a tutorial where you can follow along in creating a frontend for a programming language that runs on it, I definitely want to do that.

  2. For years, building #JIT compilers for languages like Lua, Python, and Ruby by hand has made them difficult to maintain as those languages evolve.

    Meet yk - an #opensource framework that automatically derives a JIT compiler from an existing C interpreter, preserving compatibility while delivering up to 4× speedups.

    Learn how it works, the technical challenges involved, and what's next for automatic JIT generation.

    🎬 Watch the #InfoQ presentation by Laurence Tratt: bit.ly/4z6G9UO

    #ProgrammingLanguages #Performance

  3. For years, building compilers for languages like Lua, Python, and Ruby by hand has made them difficult to maintain as those languages evolve.

    Meet yk - an framework that automatically derives a JIT compiler from an existing C interpreter, preserving compatibility while delivering up to 4× speedups.

    Learn how it works, the technical challenges involved, and what's next for automatic JIT generation.

    🎬 Watch the presentation by Laurence Tratt: bit.ly/4z6G9UO

  4. ⭕« Une vie juive vaut 10 millions de vies #Palestiniennes »

     Lors d'un entretien avec la #BBC, le colon #Israélien et avocat #Yehuda_Shimon a déclaré que tous les #Palestiniens des villages de #Tal, #Sarra, #Jit et #Farata devraient être tués. »

     #Focus

  5. Бенчмаркая ZLinq: один IEnumerable в сигнатуре — и .NET 10 быстрее библиотеки в 3,9 раза

    ZLinq — замена LINQ без аллокаций. На .NET 8 и .NET 9 время одинаковое. На .NET 10 иначе: массив тот же, но если параметр объявлен как IEnumerable, foreach перебирает его в 2,58–3,89 раза быстрее ZLinq. Причина видна в машинном коде, память замерена отдельно.

    habr.com/ru/articles/1065192/

    #ZLinq #LINQ #IEnumerable #аллокации #бенчмарк #BenchmarkDotNet #производительность #NET_10 #JIT #дизассемблер

  6. Бенчмаркая Regex: конструктор показал 10 мкс, первый вызов — 1307

    Проверить строку регулярным выражением в .NET можно по-разному, но совет всегда один: включите RegexOptions.Compiled или возьмите генератор. Замеры это подтверждают. А вот подготовка выражения оказалась не там, где её меряют: конструктор занимает 10 микросекунд, а первая же проверка на этом объекте — ещё 1307. Разобрался, куда уходит разница, и заодно нашёл границу, на которой статический Regex.IsMatch резко замедляется.

    habr.com/ru/articles/1063204/

    #regex #generatedregex #regexoptions #benchmarkdotnet #jit #кэш #производительность #регулярные_выражения #net_10 #string

  7. О разработке прототипа эмулятора WIE: запуск Windows PE64 бинарников на Apple Silicon

    WIE — это исследовательский эмулятор пользовательского режима (userspace) для запуска 64-битных Windows-приложений (PE64) на архитектуре macOS Apple Silicon. Проект написан на Rust 1.97, а в качестве бэкенда компиляции используется Cranelift для трансляции x86-64 инструкций на лету в нативный ARM64.

    habr.com/ru/articles/1061806/

    #petпроект #jit #apple_silicon #macos #wine #winapi

  8. Бенчмаркая регресс LINQ: обещали −19%, на четырёх машинах намерил +31%

    Уважаемые читатели, в этой статье я хочу рассказать о проверке обещанного регресса LINQ в .NET 10 — и представить свои выводы. В dotnet/runtime с лета висит issue #117717 : после перехода на .NET 10 метод с First(предикат) просел к девятке — у автора issue на Intel 13-го поколения до 19%, у Энди Эйерса из JIT-команды на Zen 4 порядка 10%. Причину команда назвала сама: связка PGO и инлайнинга, делегат предиката перестал инлайниться. Решение тоже озвучили: в десятке чинить не будем — сломаем другое, переносим в .NET 11. Был частичный фикс ( PR #117816 ), после которого issue переоткрыли как #119425 . Десятка при этом LTS, и в комментах закономерный вопрос: обновляться на десятку или ждать одиннадцатую.

    habr.com/ru/articles/1060518/

    #benchmarkdotnet #linq #first #регресс #net_10 #jit #pgo #инлайнинг #производительность #osr

  9. Бенчмаркая Sum: ускорил циклом — замедлил в ×4,7

    Уважаемые читатели, в этой статье я хочу рассказать о том, что происходит внутри values.Sum() в современном .NET — там нашлись векторные инструкции, контроль переполнения и список процессоров, которым рантайм намеренно ограничивает ширину вектора, — и представить свои выводы. В прошлых статьях серии самописные циклы уже проигрывали BCL в поиске по строке , JIT сам выкидывал проверки границ , а foreach прятал аллокации . Тут случай интереснее: values.Sum() — это LINQ, который при оптимизации первым делом меняют на цикл.

    habr.com/ru/articles/1060470/

    #benchmarkdotnet #linq #sum #simd #avx512 #векторизация #производительность #jit #ryujit #overflowexception

  10. Бенчмаркая проверки границ: фикс, который шёл 8 лет, и проверка, которая жива до сих пор

    Уважаемые читатели, в этой статье я хочу рассказать о проверках границ массива и представить свои выводы. Каждое обращение arr[i] обязано проверить индекс, иначе IndexOutOfRangeException — а JIT старается эти проверки убирать, когда может доказать, что выход за границы невозможен. Я взял несколько обычных циклов и посмотрел в машинный код на .net 8, 9, 10 и 11 одновременно. Результат разложился по версиям так, как я не ожидал. Будет три истории:

    habr.com/ru/articles/1059040/

    #benchmarkdotnet #JIT #bounds_check #проверка_границ #RyuJIT #NET_11 #дизассемблирование #производительность #оптимизация #массивы

  11. Бенчмаркая foreach и энумераторы: аллокации, которые прятались 10 лет

    Уважаемые читатели, в этой статье я хочу рассказать о скрытых аллокациях в обычном foreach и представить свои выводы. Тесты сделаны на .net 8, .net 9 и .net 10 одновременно, чтобы было видно, как одна и та же строчка кода ведет себя на разных рантаймах. Все тесты сделаны с использованием BenchmarkDotNet, полный код представлен на гите, так что каждый может проверить результаты и сделать свои выводы. Будет три истории, и все три про foreach:

    habr.com/ru/articles/1058160/

    #benchmarkdotnet #foreach #boxing #аллокации #GC #JIT #escape_analysis #NET_10 #производительность #SortedList

  12. 🐢💻🤖 Ah, the riveting saga of HotSpot's #JIT compiler—where shifting #bits magically turns them into... nothing! Because, of course, developers love spending their precious time learning how an 8-bit number's existential crisis can lead to groundbreaking advancements in #digital #futility. 🌪️🌀✨
    questdb.com/blog/jvm-jit-known #HotSpot #compiler #developer #struggles #and #bytes #HackerNews #ngated

  13. 🐢💻🤖 Ah, the riveting saga of HotSpot's #JIT compiler—where shifting #bits magically turns them into... nothing! Because, of course, developers love spending their precious time learning how an 8-bit number's existential crisis can lead to groundbreaking advancements in #digital #futility. 🌪️🌀✨
    questdb.com/blog/jvm-jit-known #HotSpot #compiler #developer #struggles #and #bytes #HackerNews #ngated

  14. step 1: do an experimental JIT
    step 2: do a website called doesjitgobrrr.com to track performance
    step 3: write a PEP called "JIT Go Brrr"
    step 4: non-experimental JIT gone brrr?
    step 5: CPython gone brr?
    step 6: brrr?

    peps.python.org/pep-0836/
    #Python #CPython #JIT #PEP #PEP836 #JIT #GoBrrr

  15. step 1: do an experimental JIT
    step 2: do a website called doesjitgobrrr.com to track performance
    step 3: write a PEP called "JIT Go Brrr"
    step 4: non-experimental JIT gone brrr?
    step 5: CPython gone brr?
    step 6: brrr?

    peps.python.org/pep-0836/
    #Python #CPython #JIT #PEP #PEP836 #JIT #GoBrrr

  16. Аллокации, которых нет в коде: охота на скрытый боксинг в .NET 10

    Вы написали struct ради zero-allocation, прошли code review — а в проде Gen0-коллекции всё равно идут косяком. Самая дорогая аллокация та, которой нет в исходниках: компилятор молча упаковывает ваш value-тип в кучу там, где вы этого не просили. Разбираю, где скрытый боксинг живёт и на .NET 10 (интерфейс на struct, foreach по IEnumerable, ValueType.Equals, params object[], замыкания), а где рантайм его уже вырезал — и почему слепо чинить HasFlag по гайдам 2015 года вредно. Два прод-кейса, шпаргалка-таблица, бенчмарк на BenchmarkDotNet и охота на box через DOTNET_JitDisasm и dotnet-gcdump.

    habr.com/ru/articles/1049236/

    #NET_10 #c# #боксинг #boxing #аллокации #GC #BenchmarkDotNet #JIT

  17. @schenklklopfer Huh, interesting.

    cPython 3.12.3:
    9475.86 MB/s

    PyPy (nightly, default settings):
    4378.93 MB/s

    PyPy (nightly, --jit off):
    3676.98 MB/s

    My guess: Most of the time is spent in bytes.find(), which is a highly optimized C function in #cPython already. The actual python overhead is so small that my parser even beats #rust (emmett-core) in this benchmark. #PyPy does not have much room for its #JIT to do anything, and seems to have a less optimized stdlib?

  18. @schenklklopfer Huh, interesting.

    cPython 3.12.3:
    9475.86 MB/s

    PyPy (nightly, default settings):
    4378.93 MB/s

    PyPy (nightly, --jit off):
    3676.98 MB/s

    My guess: Most of the time is spent in bytes.find(), which is a highly optimized C function in #cPython already. The actual python overhead is so small that my parser even beats #rust (emmett-core) in this benchmark. #PyPy does not have much room for its #JIT to do anything, and seems to have a less optimized stdlib?

  19. @thinkingfish congratulations!!! I am gonna wait just a bit longer. #JIT

  20. L’articolo di #AmosGoldberg, storico israeliano professore presso l'Università Ebraica di Gerusalemme e che molto ha scritto sulla #Shoah, parte da un episodio molto concreto: il processo per diffamazione intentato dal colono #UriKirschenbaum contro il giurista #AlonHarel.

    Quest’ultimo aveva definito #Kirschenbaum “uno studente di #AlfredRosenberg” ( considerato da Hitler l'ideologo del nazismo), dopo che Kirschenbaum aveva pubblicato un articolo in cui giustificava un #pogrom dei coloni nel villaggio palestinese di #Jit e proponeva una dottrina di “deterrenza” basata sul colpire deliberatamente civili palestinesi. #Goldberg, chiamato come esperto, spiega che l’analogia non era un insulto gratuito, ma un confronto fondato su elementi strutturali. ⬇️2

  21. You think you know what your Java code does? You don’t. The #JIT rewrites it at runtime. Harshitha Popuri & @gireeshpunam trace how bytecode turns into native optimizations inside OpenJ9.

    See what actually executes in production: javapro.io/2026/02/18/the-runt

    #JVM @IBMDeveloper

  22. It was really awesome to have Michalis Papadimitriou visit #Netflix today to talk about #TornadoVM and programming for the GPU in #Java with the Java Platform teams! Very cool to see the power of #OpenJDK, #JVMCI, and the extensibility of #Graal's #JIT compiler in action!

  23. The Settings GUI in was in need of some love and is now having a refresh. Several new knobs, some shuffling around to make things more cohesive and less scattered, and some edits of hints to hopefully reduce potential for confusion.

    New options for:
    - First-Party Isolation
    - Enhanced Protection tweaking in Custom mode (useful mostly for FPI users)
    - and ICE
    - Push and its optional network connection
    - features
    - WebAssembly (#wasm)
    - Geolocation
    - WebGPU
    - Async callstacks support
    - Persisting of browser history

    Hints and the "advanced" options expand when clicking the "?" for parent option.

    Still a bit hesitant on where global toggles for and belong. And perhaps configuration for cross-origin referrer could also move to Browser Privacy controls?

    Otherwise feels like things are coming together - What do you think? Anything you're missing or that feels out of place?