2011-12-27 2 views
1

나는 차이, 성과가 있는지 알고 싶습니다 현명한 사이 :node.js에서의이 두 구현의 차이점은 무엇입니까?

var http = require('http'); 

http.Server(function (req, res) { 
    if (req.url == 'foo') { foo(); return;} 
    if (req.url == 'bar') { bar(); } 
}).listen(123); 

2) 2 개 포트

var http = require('http'); 

http.Server(function (req, res) { 
    foo(); 
}).listen(123); 

http.Server(function (req, res) { 
    bar(); 
}).listen(456); 
에 갈라 :

1) 동일한 포트에서

3) 2 개의 다른 js 파일에서 2 개의 다른 노드 cmd에서 실행합니다.

foo()bar()은 파일 업로드와 같은 문제를 해결하는 데 시간이 오래 걸리는 기능입니다.

답변

1

# 1과 # 2는 기본적으로 성능면에서 동일합니다. # 3과 같이 두 대의 서버를 실행하고 멀티 코어 컴퓨터를 사용하는 경우 필요 및 사용 가능한 IO에 따라 최대 두 배의 동시 요청을 수행 할 수 있습니다.

+1

작업 부하가 I/O 바인딩 인 경우 두 개의 CPU가 속도를 높이 지 못합니다. 그렇지 않으면 node.js가 전혀 의미가 없습니다. 물론 워크로드가 CPU가 많은 경우에는 많은 도움이됩니다. – Thilo

+0

그래, 그게 내가 "필요한 입출력에 따라"라고 말했다. :) – nicolaskruchten

1

두 개의 서로 다른 노드 인스턴스는 두 개의 CPU 스레드를 제공하지만 더 많은 메모리를 사용하며 쉽게 상태를 공유 할 수 없습니다. 그것이 내가 볼 수있는 유일한 진짜 차이입니다.

관련 문제