Emacs is heavier and slower than Vim out of the box. But as you gradually accumulate more and more 3rd party packages written in the editor's scripting languages the performances start to even out and they are pretty much the same. You pay the price of Emacs during the initial startup, but after that everything is golden.
Vim has an integrated terminal. Emacs has several options for terminals, the most "native" being vterm. Vterm highlights Emacs dynamic modules feature which is pretty cool for SUPER performant native packages, although it's only used for a small handful of things at the moment.
LSP is the thing that really makes what you want possible. Now all editors can much more easily support completion for tons of languages. I love the idea of it. But LSP just feels janky to me. I can't quite put my finger on it, but it never feels as good as a dedicated single language completion. For example SLIME is much better than any LSP experience, in completion, debugging, and flying around the code base.