728x90
어떤 로직으로 짠 코드가 더 빠른가.
개발자에게 흥미를 유발시킬 수 없는 소재 아닌가. 두근두근
코딩테스트를 준비 할때도 알고리즘에 따라
속도를 비교할 수 있는 좋은 방법이지 싶다.
두 가지 방법을 소개할 예정이다.
EZ 버전과 쌈뽕한 버전.
console.time() console.timeEnd() 사용하기
위 처럼 해두고 node ${파일명} 해주면
얼마나 걸렸는지 빠르게 보여준다.
Benchmark js 사용해보기
좀 쌈뽕한 방법이다.
바로 benchmark js 를 사용해보는 것
설명을 그대로 변역해보면
"고해상도 타이머를 지원하고 통계적으로 중요한 결과를 반환하는 강력한 벤치마킹 라이브러리"
이다.
야무지게 비교해준다고 한다.
사용방법은
npm install benchmark 로 다운받아주고
아래와 같은 코드를 돌리면 끝!
const Benchmark = require("benchmark");
const suite = new Benchmark.Suite();
suite
// 비교함수 A
.add("convertAndAdd", function () {
convertAndAdd("123", "123");
})
// 비교함수 B
.add("digitByDigitAddition", function () {
digitByDigitAddition("123", "123");
})
// Add listeners
.on("cycle", function (event) {
console.log(String(event.target));
})
// 끝나면 아래와 같이 결과 표시
.on("complete", function () {
console.log("Fastest is " + this.filter("fastest").map("name"));
})
// Run asynchronously
.run({ async: true });
.add 를 통해서 함수를 추가해준다.
.on('cycle') 은 listener 역할을 하고 끝나면 결과를 표시해주는 역할을 할 수 있다.
.on('complete') 는 전체 비교가 다 끝나고 결과를 보여준다. this는 객체로 비교 함수들 각각의 값을 가지고 있다.
위의 결과를 보면
두 함수의 속도를 매우 자세히 확인해준다.
timeEnd 보다 시간은 조금 걸리지만 괜히 좀 더 믿음이 가는 결과물이다.
좀더 정밀한 방법이 꼭 필요할 때 Benchmark 라이브러리가 유용하게 쓰이지 않을까 싶다!
728x90
'개발 지식' 카테고리의 다른 글
[코딩 비기 제n장] 여러 브랜치 한번에 삭제하기!! (41) | 2024.04.19 |
---|---|
[VSCode] Visual Studio Code, v1.88 맛보기(24년 4월) (0) | 2024.04.18 |
[코테코테] PCCP기출문제 1번 (1) | 2024.03.28 |
[WEB] localhost는 http? https? (feat. 사이트 보안 연결할 수 없음) (0) | 2024.03.19 |
[Chorme] 크롬 개발자 모드, 코어 웹 바이탈 최적화 수치 보기 (0) | 2024.03.18 |