I Migrated from ( Elixir / Rust-Tokio ) world


I migrated from ( Erlang/Elixir , Rust Tokio ) for reasons :

  1. Rust come with banner : ( zero abstraction )
    BUT !! Don’t support async completely and we had use some trick and
    we forced to use async-trait to solving that issue, and that used much by Tonic (common rust grpc framework)
    OVERHEAD: heap allocation per function call this is reason of tonic is slower than golang in grpc

  2. almost around all driver written by Rust exist are slower than written by cpp

  3. I wrote a many real-world benchmark and share with Rust forum and Elixir/Erlang forum, result was Elixir/Erlang (Beam) is very faster than in message passing, BUT rust contributor for increase performance suggested :
    use single-thread scheduler for increasing performance because in multi-thread scheduler exist overhead for async message passing between thread

  4. Jvm JIT make very fast your app for you in Runtime,
    Rust give you tools to write code to execute fast but also in
    async ecosystem give you some cost around features

  5. for Real Project I always buy machine then compile my code to that cpu and if i need run my code in another machine, i always stress cpu type and vendor.
    in Jvm forget about it, its very great