Does anyone know the performance improvement of the external rust atmos implementation of
MILLA over LINDA/ZAS/FES? Granted a big thing is being muti-threadedlmao.
Common misconception: Multi threaded does not mean better. Auxmos was previously multi-threaded, but was made single threaded because the overhead of managing all of the mutex locks was too much and made the program basically impossible to debug. For context, Auxmos is made by Putnam, the guy who is currently the only person ever to work on Dwarf Fortress's code whose name doesn't contain Adams.
To actually answer your question: Of course it's faster, much faster, it's written in a language that, among other things, is made for speed. The thing is, you make a few key sacrifices to use FFI-based atmospherics.
1. Not everyone knows the other language. This is a serious problem due to what project managers call "Bus Factor", aka, "How many people can get hit by a bus before we're fucked?". In SS13, Bus Factor of these sorts of programs can be counted on the hand of an inbred child who just had an entire hand amputated.
2. You make alot of concessions with how the Dreammaker-side code is structured. MILLA is the first atmospherics system to use the FFI instead of using a memory injection tool like Extools (Monstermos) / Auxtools (Auxmos). There's alot of baggage that comes with that, because it means that you can't just read game state from memory directly, you have to use the functions provided by the Byond API. They're very bare bones, because it's a C API, so it's nowhere as simple as just "write the same code but in Rust". MILLA makes use of some, in my opinion, gross modifications to the game code to make this viable.
MILLA has alot of specific objects (effectively callbacks) for handling what would otherwise be extremely simple behavior, in the name of being as fast as possible, because it's not on the same thread as the game. Byond's API provides no threading, which means all threading has to be handled by the DLL invoking the API. Byond instead provides a method called ThreadSync which will invoke a passed callback when main thread is ready for it. Because true concurrency is not possible in byond, it requires these gross paradigms to manage the multi threading part of MILLA. And I hate that, on a personal level.