In general if you care about performant code, you're going to want to write ugly imperative code. Sarah Groff Hennigh-Palermo has an excellent talk that explores FP vs imperative programming in terms of performance: thestrangeloop.com/2017/adventures-in-the-vbuffer…
In practice, I've found codebases written in imperative style more difficult to maintain, read, and change (they may appear to be easy to change at first).
Codebases written in functional styles are easier to read, harder to write, easier to maintain, and easier to change. There's also typically less code. I've also seen functional codebases over-engineered with unnecessary indirection, but that's not a critique of the style; I just feel like I need to note that FP isn't a panacea.
It's definitely easier to write in an imperative style when first wrestling with a problem. I find that I usually write my first draft imperatively and then iterate until I've got a nice functional solution. Functional code at its best reads like a poem that describes the problem it's solving.