자바스크립트 for while 퍼포먼스 비교
앞서 포스팅했던 자바스크립트 퀵소트에서 for이 while보다 퍼포먼스가 좋다고 기술했는데, 잘못된 정보를 알려 드린 것 같아 정정하고자 글을 작성합니다.
앞선 포스팅에선, 한번에 for while 둘 다 실행되도록 하고 시간을 측정했습니다.
나중에 다시 확인해보니, for이건 while이건 먼저 하나가 실행되면 그다음 건 빨리 실행되더라고요.
전 그 테스트에서 while을 계속 먼저 실행하고 for을 그다음에 실행해서 for이 더 빨리 실행되는 것처럼 보였던 것입니다.
다른 요인은 배제하고 순수하게 퍼포먼스를 비교하고 싶어서, 두 개를 최대한 비슷한 모양으로 만들고 테스트를 진행했습니다.
결과
for
for: 1.226806640625ms
for: 1.133056640625ms
for: 1.120849609375ms
for: 1.0859375ms
for: 1.088134765625ms
for: 1.130859375ms
for: 1.15283203125ms
for: 1.098876953125ms
for: 1.072998046875ms
for: 1.114990234375ms
for: 1.10498046875ms
for: 1.111083984375ms
for: 1.115966796875ms
for: 1.0810546875ms
for: 1.117919921875ms
for: 1.1142578125ms
for: 1.10400390625ms
for: 1.109130859375ms
for: 1.091796875ms
for: 1.094970703125ms
while
while: 1.135009765625ms
while: 1.0791015625ms
while: 1.0830078125ms
while: 1.286865234375ms
while: 1.094970703125ms
while: 1.080810546875ms
while: 1.09814453125ms
while: 1.089111328125ms
while: 1.10693359375ms
while: 1.0849609375ms
while: 1.10205078125ms
while: 1.124755859375ms
while: 1.084716796875ms
while: 1.0888671875ms
while: 1.072021484375ms
while: 1.089111328125ms
while: 1.084228515625ms
while: 1.10498046875ms
while: 1.084228515625ms
while: 1.1162109375ms
결과가 하나 나올 때마다 리프레시하며 확인한 결과입니다. 그렇게 눈에 띄는 차이를 보여주진 못했습니다.
100000 대신 10000000000으로 테스트해봤습니다.
for
for: 8827.246826171875ms
for: 8834.508056640625ms
for: 8843.69580078125ms
for: 8828.421875ms
for: 8823.5791015625ms
while
while: 8801.22509765625ms
while: 8832.86376953125ms
while: 8826.122802734375ms
while: 8814.134765625ms
while: 8813.14990234375ms
후에 몇 번 더 테스트를 해봤지만 for은 8,810대도 나오지 않았습니다.
루프가 저만큼 돌 일도 많진 않고, 그렇게 극적인 차이를 보이지도 않으니 그냥 코드 작성할 때 편한 방법을 선택하면 되지 않을까 싶습니다.