Дописи з тегом #performance
-
Зливаємо конвеєр risp, щоб обігнати CPython: вбити 400 000 виділень виявилося замало
У risp, Lisp на Rust без залежностей, злиття map/filter/fold скорочує 400 000 виділень до O(1), але CPython обганяє лише мономорфний цикл i64: 4 мс проти 24 мс.
-
Чому risp, Lisp із нативною компіляцією, програє CPython на map/fold: алокації, а не кодогенерація
risp — Rust Lisp без залежностей — обходить CPython у 9–40× на цілих, але програє 3× на map+fold: ~400 000 алокацій cons-комірок, не диспетчеризація.
-
Додаємо Cranelift JIT, який працює у 10–23× швидше за CPython
Заглиблення у вмикуваний Cranelift JIT для risp на Rust: перевірник типів за принципом «відхиляй, не вгадуй», зведення if/cond/let до Cranelift IR, вбудоване виявлення знакового переповнення, хвостові виклики як зворотні ребра циклу та охоронець деоптимізації, що випереджає CPython у 10–42 рази.
-
Як байткодова VM на Rust обігнала CPython 3.14
Одинадцять кроків за даними профілювання на справжньому Rust: лексично-адресовані локальні змінні, розпакована арифметика i64, небезпечний гарячий цикл і самохвостові виклики на місці — від 1682 мс до 95 мс на fib(30) для деревообхідного Lisp, з обгоном CPython на кожному циклі.
-
Деплой на краю мережі Cloudflare, що просто працює
Заголовки, редиректи та кешування мають бути на краю мережі, а не в коді застосунку. Погляд на маленькі конфіги, які роблять основну роботу.
-
Як цей сайт тримає Lighthouse 100 на мобільному
Статична збірка Astro, жодного клієнтського фреймворку та сувора CSP: три рішення, що тримають усі чотири категорії Lighthouse на позначці 100.