Как уместить эмулятор Game Boy в 4 КБ кэша Playdate
Dirty Optimization Secrets (C for Playdate)
Разработчик делится нестандартными приёмами оптимизации C для Playdate, которые помогли ускорить эмулятор Game Boy. В их числе сжатие ядра эмулятора с 20 КБ до 2 КБ, использование инструкционного кэша, кастомный линкер-скрипт, ручное размещение кода в ITCM и борьба с «лотереей производительности» из-за выравнивания кэша и таблиц предсказания переходов.
Первое, что я сделал для повышения производительности эмуляции Game Boy, — сжал 20-килобайтное ядро эмулятора до всего 2 КБ, убрав гигантскую таблицу switch и выразив её гораздо меньшим кодом с помощью нескольких ветвлений.