프론트엔드/한줄코딩

split 실행 시간 테스트

.log('FE') 2021. 10. 19. 22:28
728x90
반응형

타 회사에서 백엔드로 일하는 친구가 있는데 프론트로 사내에서 전향된 케이스가 하나 있습니다. 그 친구가 데이터 처리를 하는데 예제코드를 보여주더라구요

 

const a = data.split('-')[0]
const b = data.split('-')[1]

 

아무튼 대화를 하다가 저는 근데 이렇게 split 쓰는것보다 아래처럼 쓰기를 권장했습니다.

 

const a = data.split('-')
const x = a[0]
const y = a[1]

 

사실 대량의 텍스트 데이터를 갖고 저렇게 처리할일은 저는 없었다보니 그냥 친구가 보내준것처럼 가끔 작성하기도 했던것같습니다. 그래도 많은 배열 또는 많은 텍스트를 첫번째 예시같이 처리한다면 data 에 대해서 split 을 별도로 두번 실행하기때문에 실행시간 효율면에서 두번째 예제가 더 낫지 않겠나 라는 생각이 들었고 실제로 테스트를 해보았습니다.

 

console.time('double')
const a = test.split('-')[0];
const b = test.split('-')[0];
a === b
console.timeEnd('double')

console.time('single')
const y = test.split('-');
const x = a[0]
const z = a[0]
x === z
console.timeEnd('single')

 

- 로 연결된 엄청 긴 텍스트를 하나 작성했습니다. '1-2-3-4-5-6-7-...' 그리고 각각의 두 예제를 만들어서 시간을 테스트한결과

 

실행시간 테스트

생각보다 꽤 많은 차이가 나는걸 확인 할 수 있었습니다. 그냥 뇌피셜로 당연히 그렇지 않을까 생각했었는데 일단 실제로도 충분히 차이가 나는 부분이었네요. 

 

이런 작은 부분들이 쌓여서 코드의 실행 시간에 영향을 줄 수 있는걸 확인했으니 코드리뷰때나 스스로 코드를 작성할때나 신경써서 봐야할 부분이라고 다시한번 생각이 들었습니다.

728x90
반응형