-
Task
-
Resolution: Done
-
Major
-
None
-
None
-
None
Some EncoderCache methods that are normally completed asynchronously create additional CompletableFuture objects. For example getAsync always applies a thenApply method which involves always creating a new CompletableFuture as well as some internal allocations (the inner ones are usually optimized away).
We can instead check for the stage being complete and then compare the unwrapped value with the final value to see if we even need to create a new CompletableFuture object.