У них там эмулятор, который делает софт детерминированным насколько это возможно, т.е. при повторном запуске каждый системный вызов возвращает тот же результат, что и в прошлый раз. К этому прикручен фаззинг, симуляция разных ошибок (потери пакетов, притормаживание тредов и т.д.)
Кроме того, на процессорах серии M3 не запускаются 32-разрядные приложения, так как они устарели для Windows Arm.
Тут надо уточнить что речь идёт про 32-битные Arm приложения, и не из-за того что они устарели для Windows Arm, а потому что в M3 нет поддержки 32 бит.
Рис. 1: Флейм-диаграмма загрузочного процесса FreeBSD 14 под Firecracker.
Если кому-то интересно как получить такой флеймграф, где изображены не только моменты потребления CPU, но и ожидания (_sleep), то вот статья: Hot/Cold Flame Graphs.
Даже не знаю как он назывался. Мы тогда в Intel делали оптимизаторную часть и передавали сорцы в HP, а они уже встраивали их в финальный компилятор для OpenVMS. Причём интересно что в то же время у HP был собственный компилятор для Itanium HP-UX, не хуже чем наш Intel Compiler, но так исторически сложилось что компилятор для OpenVMS был основан на ICC.
У них там эмулятор, который делает софт детерминированным насколько это возможно, т.е. при повторном запуске каждый системный вызов возвращает тот же результат, что и в прошлый раз. К этому прикручен фаззинг, симуляция разных ошибок (потери пакетов, притормаживание тредов и т.д.)
https://antithesis.com/blog/deterministic_hypervisor/
Как раз наоборот, широкие сёдла не предназначены для долгого катания, а на узких можно долго безопасно катать (если седло правильно подобрано).
Возможно диск погнут. Или надо отторцевать раму под креплением тормоза, а у них нет такого инструмента.
В этом году не получится, увы :(
https://krasnayapolyanaresort.ru/bike_park_2024
В Bit Twiddling Hacks много такого.
Но ведь Вимм-Билль-Данн — изначально российская компания.
Тут надо уточнить что речь идёт про 32-битные Arm приложения, и не из-за того что они устарели для Windows Arm, а потому что в M3 нет поддержки 32 бит.
Застали там Юрия Сергеевича Румянцева?
Видел такие девайсы на полках магазинов в конце 90х, и тогда это казалось какой-то инопланетной технологией.
Вроде всё наглядно и удобно. Только цветовую тему я бы сменил на менее кислотную, типа:
vimdiff
?Vector Instruction Pointer
Как будто это что-то плохое.
Ещё можно разматывать стек при помощи специальных хардварных регистров, но это поддерживается не всеми процессорами и не всеми виртуалками.
Intel Last Branch Records
Intel Processor Trace
Arm Branch‑Record Buffer extension
Если кому-то интересно как получить такой флеймграф, где изображены не только моменты потребления CPU, но и ожидания (
_sleep
), то вот статья: Hot/Cold Flame Graphs.Современная виртуализация работает с очень маленьким перфоманс оверхедом, буквально пара процентов.
А бинарная трансляция да, может замедлить и в 2 раза.
Конечно медленнее, они же работают не нативно, а через бинарную трансляцию.
Но Parallels их никак не может ускорить, это всё сделано на стороне Microsoft.
Странно что сравнивают с Rust и Go, но нет сравнения с AssemblyScript, который специально создан для тех же целей что и Moonbit.
Даже не знаю как он назывался. Мы тогда в Intel делали оптимизаторную часть и передавали сорцы в HP, а они уже встраивали их в финальный компилятор для OpenVMS. Причём интересно что в то же время у HP был собственный компилятор для Itanium HP-UX, не хуже чем наш Intel Compiler, но так исторически сложилось что компилятор для OpenVMS был основан на ICC.
Участвовал в разработке компилятора для OpenVMS под Itanium. Но при этом саму OpenVMS ни разу не видел.