Wersja asynchroniczna zawsze będzie wolniejsza niż wersja synchroniczna, gdy nie będzie współbieżności. Wykonuje tę samą pracę, co wersja nieasynchroniczna, ale z niewielkim obciążeniem dodanym do zarządzania asynchronią.
Asynchronia jest korzystna pod względem wydajności, ponieważ umożliwia lepszą dostępność. Każde pojedyncze żądanie będzie wolniejsze, ale jeśli wykonasz 1000 żądań jednocześnie, implementacja asynchroniczna będzie w stanie obsłużyć je wszystkie szybciej (przynajmniej w pewnych okolicznościach).
Dzieje się tak, ponieważ rozwiązanie asynchroniczne umożliwia wątkowi, który został przydzielony do obsługi żądania, powrót do puli i obsługę innych żądań, podczas gdy rozwiązanie synchroniczne wymusza, aby wątek tam siedział i nie robił nic podczas oczekiwania na zakończenie operacji asynchronicznej. Struktura programu w sposób, który pozwala na uwolnienie wątku do wykonania innej pracy, wiąże się z dodatkowymi kosztami, ale zaletą jest to, że ten wątek może wykonać inną pracę. W twoim programie nie ma innej pracy do wykonania w wątku, więc kończy się to stratą netto.