2017-02-15 3 views
-1

가 난 그냥 디렉토리에서 파일 이름을 읽을 수 : 만 15 개 파일로Node.js로 느려짐 FS : 어떻게 파일을 더 빨리 나열 할 수 있습니까?

const fs = require('fs');  
fs.readdir("repo/_posts", (err, files) => {  
    files.forEach(file => { 
    res.write(file + "\n");  
    }); 
}) 

, 그것은 매우 느립니다, 파일 이름을 표시하는 데 몇 초의 시간이 걸립니다. 나는 무엇을 잘못 했는가?

편집 : 의견에서 @Darin Dimitrov가 제안한대로 res.write를 console.log로 대체하려고 시도 했으므로 빠릅니다. res.write 루프 또는 비슷한 비슷한 나쁜 연습 있습니까?

감사합니다 :)

+1

'fs.readdir '이 느리고 HTTP 파이프 라인의 다른 부분이 아닌 것은 확실합니까? 이것을이 호출 만하는 별도의'test.js' 파일에 넣고 파일 이름을 콘솔에 출력하고 그것이 똑같이 동작하는지 볼 수 있습니까? –

+0

@DarinDimitrov 네 말이 맞아. 내가 이렇게하면 더 빠르다. 콘솔로만 인쇄하는 것이 빠르지 만 res.write를 사용할 때 속도가 느립니다. – Loic

+0

'res.write()'출력이 즉시 표시되는지 확인하기 위해 URL을 cURL과 함께 입력 해 보았습니까? 대부분 브라우저가 콘텐츠 인코딩 스니핑을 비롯한 다양한 이유로 출력을 버퍼링 할 가능성이 있으므로 즉시 보지 못합니다. – mscdex

답변

1

대부분의 브라우저는 (콘텐츠 인코딩 감지 포함) 여러 가지 이유로 서버에서받은 출력 버퍼 것이며, 그들 중 일부는 다른 사람보다 더 많은 버퍼 수 있습니다. cURL과 같은 유틸리티를 통해 동일한 URL에 액세스 할 수 있고보다 신속하게 예상 결과를 볼 수 있다면 브라우저의 "문제"를 확인하는 것입니다.