An e-commerce application I used to work on used a decision tree and a rules engine for each node in order to determine if a customer qualified for certain discounts. The problem was that every promotion tree had to be evaluated, so the more promotions the client had the slower the evaluation became. This was a big problem that was often solved by throwing more hardware at it. There were alternatives to consider, but the promotions engine was a considerable undertaking. I always wondered if there was a way to consider an alternative without developing it (or developing it entirely)?
Is it possible to evaluate the efficiency of a testable algorithm against alternative solutions that aren't already built?
algorithms;language agnostic
I always wondered if there was a way to consider an alternative without developing it (or developing it entirely)?Yes.  There is.It's called design.You build a model (ideally a mathematical model) of each different algorithm.You do some analysis on that model to get the Big-O time complexity of the algorithms.The algorithms with less time complexity will usually tend to be faster.