Quoting Donald Knuth: “Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%”. (See source at Donald Knuth - Wikiquote)
I’ll paraphrase: It’s a mistake to worry about performance until you know which code is actually slowing you down. Attempting to optimize too early leads to code that’s more complex, less readable, and harder to debug.
tl;dr: I recommend using blueprints first as a general rule, then convert to C++ as necessary to obtain speed improvements. ( A good exception would be when writing some behavior in C++ actually makes it more readable/maintainable. )