티스토리 뷰

공부/uncategorized

nodejs

doublemetal 2016. 5. 18. 17:25

특징 : non-blocking io, asynchronous programming


멀티스레드 프로그램의 단점

동접사용자 증가 시 -> 스레드 증가 -> CPU의 컨텍스트 스위칭 비용과 메모리 사용량 증가 -> 서버부하/어플리케이션 응답대기 시간 증가 >> IO 대기 시간까지 추가될 경우 부하가중


- 이와 같은 단점을 해결하고자 non-blocking io에서는 말그대로 io 처리 시 프로그램이 중단되지 않고 그대로 실행된다. 이후 io 처리가 완료되면 callback fucntion을 통해 응답을 받고 처리하게 된다.
- nodejs는 request 처리 시에도 asynchronous programming를 통해 응답을 빠르게 처리하여 사용자에게response를 주게 되는데, single thread 기반이기 때문에 CPU 연산량이 많아져 개별 작업이 오래 걸리는 경우에는 성능이 떨어지게 된다. (그래서 fucntion은 되도록 작고 빠르게 처리되도록 구현하라고 한다)

- Event loop는 예외적으로 개별 thread에서 동작하는데 callback 을 받는 역할을 한다. chrome 등의 브라우저에서는 보통 event loop를 위한 별도의 시스템? Thread가 있다. nodejs에서는 별도의 c++ 코드에 의해 동작한다고 한다.


- http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/

'공부 > uncategorized' 카테고리의 다른 글

Install flash player on window server 2012  (0) 2016.08.11
Ajax? Ajaj?  (1) 2016.05.18
nodejs  (0) 2016.05.18
Categorizing  (0) 2016.05.18
문서 자동화  (0) 2016.05.18
DSL : Domain-Specific Language  (0) 2016.04.27
댓글
댓글쓰기 폼