티스토리 뷰

IT/JavaScript

Javascript String 속도 비교

트래이닝맨 2012. 8. 10. 10:08
728x90
반응형

예전에 아는 윤모 부장님이 신입사원에게 보내셨던 이메일 내용이 유익해서 올려 봅니다.~~



 지난주에 몇개 명령어를 함수 파래매터로 주고 받을때 문자열을 아래처럼 주고 받고 그것을 비교해서
제가 좀 놀랐었는데...

                        if( direction == "backward" ){
                                :
                                :
                        } else if ( direction == "forward" ){
                                :
                                :

왜냐면 Java 프로그래밍 할때 일반적으로 이런경우는 숫자(상수)로 만들어서 넘기고 비교하거든요.
그것도 그럴것이 문자열의 비교가 상수의 비교보다 수십배 비싸기 때문에. (물론 String.equals를 사용한 경우)

그래서 JavaScript에서는 어떤지 간단히 테스트 해봤는데,
앞선 메일에서 간략하게 말씀드렸지만, "  " 기호로 만든 진짜 문자열 (문자열 Object이 아닌)인경우, 같은 내용이면 실제 1개만 존재하기때문에
비교할때 문자열끼리의 비교는 내용을 일일이 다 비교할 필요 없어, 그냥 내부적인 주소값만 비교하는 것으로 보이고, 그렇다면 상수의 비교나
문자열의 비교나 뭐 속도는 비슷할 것으로 얼핏 예상되어 아래와 같은 테스트를 하였습니다.

문자열 100만번 비교 : 40ms
숫자 100만번 비교 : 37ms

결론적으로 100만번이나 비교해도 거의 차이가 없었으므로, 위와 같은 명령어 전달 및 비교시 굳이 숫자화 하지 않고 문자열을 그대로 쓰는것도
읽기도 좋고, 속도도 지장없는 나름 괜찮은 방법으로 보이네요. 

자바스크립트에서는 문자열 비교가 크게 무리가 없다는 내용이네요. 참고드하세요~~


반응형
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함