2011-05-12 6 views
1

UI를 처리 할 때 비동기 라이브러리를 사용하면 asynchronus 구현이 매우 쉽습니다. 그러나 성능을 향상시킬 수있는 서버 측면의 사용법은 볼 수 없습니다. 어떤 서버 측 시나리오가 성능 향상을 위해 사용될 수 있습니까?서버 측에서의 사용이 예상됩니다.

+4

기존 비동기 호출 API에 비해 비동기를 사용하면 응용 프로그램이 갑자기 성능이 향상되는 것은 아니므로 코드 작성 및 유지 관리가 용이 ​​해집니다. 이것은 묻고있는 올바른 질문이 아닙니다. –

답변

3

Async은 네트워크 시나리오에서 특히 유용합니다. 서버 간의 통신에는 거의 대기 시간이 없기 때문입니다. 다른 웹 서버 (다른 계층, 타사 REST 서비스)에 요청하거나 데이터베이스를 쿼리하는 작업은 일반적으로 원격 호출이 완료 될 때까지 현재 스레드가 작업을 수행하지 못하도록 차단하는 호출로 수행됩니다. 이제는 await 원격 호출이 가능하므로 현재 스레드가 다른 요청을 처리 할 수있게되어 메모리 사용량이 감소하고 (IIS는 스레드 당 256KB의 스택 공간을 사용함) 잠재적 인로드가 증가합니다 (스레드가 부족하기 전에 더 많은 병렬 작업을 실행할 수 있음).).

ASP.NET의 기본 배관은 대부분 IHttpAsyncHandler이 아닌 IHttpHandler을 사용합니다. 즉, 차단 동작을 가정하지만 ASP.NET에서는 async를 사용할 수 있습니다.

2

비동기 대 기존 비동기 호출 API를 사용하면 응용 프로그램의 성능이 갑자기 향상되지 않으므로 코드를 작성하고 관리하기가 더 쉬워집니다. 이것은 묻고있는 올바른 질문이 아닙니다.

+0

나는 그 진실을 힘든 길로 배웠다 +1 – TDaver