728x90
반응형
SMALL

 

728x90
반응형
LIST

'JavaScript > Node.js' 카테고리의 다른 글

Node.js - 폴더 정리 프로그램  (0) 2023.04.24
Node.js - npm  (0) 2023.04.24
Node.js - stream  (0) 2023.04.24
Node.js - buffer  (0) 2023.04.24
Node.js - file  (0) 2023.04.24
728x90
반응형
SMALL

  1. const beforeMem = process.memoryUsage().rss;
    • process.memoryUsage() 메서드는 Node.js 프로세스의 메모리 사용량 정보를 객체로 반환.
    • .rss 속성은 Resident Set Size(물리적 메모리 사용량)을 나타낸다.
    • beforeMem은 파일을 읽기 전의 메모리 사용량을 저장.
  2. fs.readFile('./file.txt', (_, data) => { ... });
    • fs.readFile() 메서드는 비동기적으로 파일을 읽어온다.
    • 첫 번째 인자로 파일 경로를 전달하고, 두 번째 인자로 콜백 함수를 전달.
    • 콜백 함수의 첫 번째 인자는 에러 객체이고, 두 번째 인자는 파일 데이터.
    • 이 예제에서는 에러 객체는 무시하고, 파일 데이터를 다음 작업으로 전달.
  3. fs.writeFile('./file2.txt', data, () => { });
    • fs.writeFile() 메서드는 비동기적으로 파일을 씁니다.
    • 첫 번째 인자로 파일 경로를 전달하고, 두 번째 인자로 쓸 데이터를 전달.
    • 세 번째 인자로 콜백 함수를 전달.
    • 이 예제에서는 콜백 함수가 필요하지 않으므로 빈 함수를 전달.
  4. const afterMem = process.memoryUsage().rss;
    • 파일을 쓴 후의 메모리 사용량을 측정.
  5. const diff = afterMem - beforeMem;
    • 파일을 쓴 후의 메모리 사용량과 파일을 쓰기 전의 메모리 사용량의 차이를 계산.
  6. const consumed = diff / 1024 / 1024;
    • 메모리 사용량의 차이(diff)를 메가바이트 단위로 변환.
  7. console.log(consumed Memory: ${consumed}MB);
    • 메모리 사용량의 차이를 콘솔에 출력.

이 예제 코드는 파일을 읽고 쓰는 동작을 수행하며, 이를 통해 Node.js의 메모리 사용량 측정 방법을 보여줍니다.

메모리 사용량 측정은 Node.js에서 성능 튜닝을 할 때 유용한 도구입니다.

파일을 다룰 때는 파일 시스템 모듈(fs)을 사용하여 비동기적으로 처리하는 것이 좋습니다.

비동기적으로 처리하면 파일을 읽거나 쓸 때 블로킹이 발생하지 않으므로 프로그램의 성능이 향상됩니다.

728x90
반응형
LIST

'JavaScript > Node.js' 카테고리의 다른 글

Node.js - npm  (0) 2023.04.24
Node.js - pipe  (0) 2023.04.24
Node.js - buffer  (0) 2023.04.24
Node.js - file  (0) 2023.04.24
Node.js - path  (0) 2023.04.24
728x90
반응형
SMALL

  1. const buf = Buffer.from('hi');
    • 'hi'라는 문자열을 담은 새로운 Buffer 객체를 생성.
    • buf는 이제 "68 69"와 같은 바이너리 데이터를 담고 있는 integer 형태의 배열.
    • buf.length는 2를 반환하며, buf[0]은 104, buf[1]은 105를 반환.
    • buf.toString()은 "hi"를 반환.
  2. const buf2 = Buffer.alloc(2);
    • 길이가 2인 새로운 Buffer 객체를 생성.
    • buf2[0]과 buf2[1]에 각각 72와 105를 할당.
    • buf2.toString()은 "Hi"를 반환.
  3. const buf3 = Buffer.alloc(6);
    • 길이가 6인 새로운 Buffer 객체를 생성.
    • buf3에 'nodejs'를 저장하기 위해 각 인덱스에 해당하는 ASCII 코드값을 할당.
    • buf3.toString()은 "nodejs"를 반환.
  4. const newBuf = Buffer.concat([buf, buf2, buf3]);
    • Buffer.concat() 메서드를 사용하여 buf, buf2, buf3를 합친 새로운 Buffer 객체를 생성.
    • newBuf.toString()은 "hiHinodejs"를 반환.

Buffer는 Node.js에서 메모리를 다룰 때 사용되며, 메모리를 바이트 단위로 다룸.

Buffer.from() 메서드는 문자열, 배열 또는 버퍼로부터 새로운 Buffer 객체를 생성.

Buffer.alloc() 메서드는 특정 크기의 빈 Buffer 객체를 생성.

Buffer.concat() 메서드는 여러 개의 Buffer 객체를 합쳐서 새로운 Buffer 객체를 생성.

Buffer 객체를 사용할 때 주의해야 할 점은, 메모리 사용량이 큰 데이터를 처리할 때 Buffer 객체를 사용하면 메모리 부족 문제가 발생할 수 있다는 것. 이 경우 스트림(stream)을 사용하여 데이터를 처리하는 것이 좋음. 스트림은 데이터를 작은 단위로 나누어 처리하므로 메모리 부족 문제를 예방할 수 있다.

728x90
반응형
LIST

'JavaScript > Node.js' 카테고리의 다른 글

Node.js - pipe  (0) 2023.04.24
Node.js - stream  (0) 2023.04.24
Node.js - file  (0) 2023.04.24
Node.js - path  (0) 2023.04.24
Node.js - timer  (0) 2023.04.24
728x90
반응형
SMALL

 

 

728x90
반응형
LIST

'JavaScript > Node.js' 카테고리의 다른 글

Node.js - stream  (0) 2023.04.24
Node.js - buffer  (0) 2023.04.24
Node.js - path  (0) 2023.04.24
Node.js - timer  (0) 2023.04.24
Node.js - process  (0) 2023.04.24
728x90
반응형
SMALL

 

728x90
반응형
LIST

'JavaScript > Node.js' 카테고리의 다른 글

Node.js - buffer  (0) 2023.04.24
Node.js - file  (0) 2023.04.24
Node.js - timer  (0) 2023.04.24
Node.js - process  (0) 2023.04.24
Node.js - OS  (0) 2023.04.18
728x90
반응형
SMALL

setInterval 함수는 1초마다 숫자가 커지게 해주는 함수이고

setTimeout은 5초뒤에 setinterval 함수를 중지시켜 타이머를 멈춰준다.

 

  1. console.log('code1');
    • 'code1'을 출력.
  2. console.time('timeout 0');
    • 이름이 'timeout 0'인 새로운 타이머를 시작.
  3. setTimeout(() => { console.log('setTimeout 0'); console.timeEnd('timeout 0'); }, 0);
    • 0ms(즉, 즉시) 후에 실행되는 새로운 타이머를 등록.
    • 이 콜백 함수는 실행 대기열에 들어가며, 즉시 실행되지 않음.
    • 0ms 이후에 콜백 함수가 실행될 때, "setTimeout 0"을 출력하고, "timeout 0" 타이머를 끝내는 console.timeEnd() 메서드를 호출.
  4. console.log('code2');
    • 'code2'를 출력.
  5. setImmediate(() => { console.log('setImmediate'); });
    • 즉시 실행되는 콜백 함수를 등록.
    • 이 함수는 I/O 이벤트 루프가 허용하는 한, 다른 이벤트들 보다 먼저 실행.
    • 따라서, "setImmediate"를 출력하고, setTimeout()에서 등록된 콜백 함수보다 먼저 실행.
  6. console.log('code3');
    • 'code3'을 출력.
  7. process.nextTick(() => { console.log('process.nextTick'); });
    • 현재 실행 중인 콜백 함수나 코드 실행이 끝난 직후에 실행되는 콜백 함수를 등록.
    • 따라서, "process.nextTick"을 출력하고, 다른 모든 콜백 함수들보다 먼저 실행.
728x90
반응형
LIST

'JavaScript > Node.js' 카테고리의 다른 글

Node.js - file  (0) 2023.04.24
Node.js - path  (0) 2023.04.24
Node.js - process  (0) 2023.04.24
Node.js - OS  (0) 2023.04.18
Node.js - Module  (0) 2023.04.18

+ Recent posts