Hot take: I think Rust makes it too easy to do lots of short-lived memory allocations. I don't know what language and/or library changes would have most effectively guarded against this. Maybe enforced manual drops instead of C++-style automatic drops. Maybe having to pass an allocator into every function that allocates. But it would be nice if there were something to nudge us in the direction of reusing long-lived allocations, besides just individual developers being obsessive about it.