The word performant is engineering jargon for something that may not be objectively efficient or optimal/fast but meets the performance expectations for which it was created. When an engineer uses the word performant, they mean that it's as fast and efficient as you would intuitively expect it to be. It's not meant to declare that it's the optimal or best solution, just that after working through the problem, it's the solution he settled on, and it was as fast and efficient as he expected it to be while still remaining within other project constraints.
EDIT: Thanks to Sven for contributing a link to this page where the writers associate the degree to which an entity is performant to how well they satisfy some objective. This is very much how I've seen this word used among engineers; something is deemed performant not by merely being fast but by meeting an objective for speed.
It's all about context and connotation. If I improve part of a system that will also improve performance, I might mention in a meeting that I made the part of the system more performant, which could mean that I made it use less memory or processor time, eliminated a redundant and expensive call, used a better algorithm, replaced an external call with an internal one, the list goes on and on. But most everyone at the meeting only cares about the result, and they'll come to me afterwards to discuss the change if they are curious.
It will probably make it into the dictionaries eventually, but in the mean time there's little reason not to use the alternatives, especially since you're writing a document. If you really do want to say something is performant, you can instead outline the metrics for your comparison and use a more appropriate word like other answers have suggested. On the other hand, depending on your intended audience, throwing a buzzword like "performant" in may be helpful. Just use it with care outside of engineering circles.
For inquiring minds:
It's easy to illustrate how the word performant is used in software engineering. Consider sorting a set of numbers from smallest to greatest. Every first year Computer Science student learns the Quicksort algorithm. It is the go-to sorting algorithm because it tends to behave optimally in practice. It has a flaw, however, that can make it abysmally slow on some lists. One of the first and simplest sorting algorithms a student is introduced to, called Insertion sort, can handily beat it in some cases, even though it's usually a very bad choice of sorting algorithm (for large lists).
Which leads to a conundrum: if performant could be simply interchanged with optimal or best, which sorting algorithm would be performant: Quicksort, or Insertion sort? The answer is, "It depends."
It's that way with every algorithm. If you ask someone if their code is efficient or fast, the answer must always be "It depends." How do you define efficient? How do you define fast? And so the "made-up" or "invalid" word performant was born. It allows developers to state with certainty that given resource constraints and expectations, including how much time the developer was given to solve the problem, the proposed solution is performant. It usually implies that performance goals were taken into account, but doesn't exaggerate by saying that it is the fastest solution possible.
In some way, I think developers like to use it because the longer you write software, the humbler you become. I prefer to say that my code is performant (i.e. performance meets expectations) than to say that it is fast or the best way to handle something, because inevitably someone comes along and creates a way better than mine. It's the nature of engineering, all of us standing on the shoulders of giants. It may seem noncommittal, but what exactly do you say when you write something that you know will be obsolete months or years after it's written?
All of that said, whether it is a "word" by anyone's definition, I guarantee it will continue to be used in development circles, as it is not as interchangeable as people outside the field think.