sql >> Databáze >  >> RDS >> Oracle

Asynchronní I/O intenzivní kód běží pomaleji než neasynchronní, proč?

Asynchronní verze bude vždy pomalejší než synchronní verze, pokud nedojde k souběžnosti. Dělá stejnou práci jako neasynchronní verze, ale s malým množstvím režie přidané ke správě asynchronie.

Asynchronie je výhodná z hlediska výkonu tím, že umožňuje lepší dostupnost. Každý jednotlivý požadavek bude pomalejší, ale pokud uděláte 1000 požadavků současně, asynchronní implementace je bude schopna všechny zpracovat rychleji (alespoň za určitých okolností).

K tomu dochází, protože asynchronní řešení umožňuje vláknu, které bylo přiděleno ke zpracování požadavku, vrátit se zpět do fondu a zpracovat další požadavky, zatímco synchronní řešení nutí vlákno, aby tam sedělo a nedělalo nic, zatímco čeká na dokončení asynchronní operace. Existuje režie při strukturování programu způsobem, který umožňuje uvolnit vlákno pro jinou práci, ale výhodou je schopnost tohoto vlákna dělat jinou práci. Ve vašem programu není žádná další práce, kterou by vlákno mělo dělat, takže to skončí čistou ztrátou.



  1. Po zablokování jedné transakce napříč verzemi SQL Server

  2. Jedinečná otázka citlivosti varchar na velká a malá písmena SQL

  3. Aktualizace databázových řádků bez zamykání tabulky v PostgreSQL 9.2

  4. 10 nejlepších startupů v cloudu – 2018