javascript - 이 두 JS 코드의 실행 효율성 비교
巴扎黑
巴扎黑 2017-07-05 11:07:16
0
7
1136

테스트 환경

으아아아

제가 이런 질문을 드리는 이유는 웹스톰의 경고 메시지 때문입니다.

으아아아

위 코드는 웹스톰 종료 시 경고를 보고하며, 경고 정보는 다음과 같습니다.

으아아아

오류 메시지에 따르면 제가 생각해낸 해결책은 동일한 선택기로 얻은 JS 객체를 변수를 사용하여 바꾸는 것입니다

으아아아

물론 이런 식으로는 경고가 없습니다.
코드에 실행 효율성이 언급되어 있으므로 이 두 코드의 실행 시간도 테스트했습니다.
동일한 작업을 10,000번 실행하고 세 번 테스트한 첫 번째 코드의 총 실행 시간은 각각 1372, 1339, 1423이었습니다.
두 번째 코드 전체 실행 시간은 각각 1407, 1277, 1403입니다. 테스트 결과 경고는 없었지만 실행 효율성은 향상되지 않았습니다.

그리고 최근에 한 회사에서 인턴을 했는데, 그 회사의 코드를 살펴보니 두 번째 코드와 비슷한 것이 셀렉터 연산을 반복적으로 수행하는 코드가 없었습니다.

내 문제는 두 번째 코드의 최적화가 전혀 필요하지 않다는 것입니다. 오히려 변수가 하나 더 있으면 사실상 유지 관리의 어려움이 커집니다.


아래 답변을 읽어보세요.

다음 코드에 대한 테스트를 추가하세요
으아아아

세 가지 테스트 결과는 1338 1348 1404입니다. 아직도 개선이 없습니다.

巴扎黑
巴扎黑

모든 응답 (7)
習慣沉默

다른 답변에서 잘못된 점을 지적했습니다.
한 가지 말씀드리자면, 효율성이 크게 향상되지 않는 이유는 실제로 이러한 하위 수준 오류의 대부분을 선언하면 최적화할 수 있기 때문입니다. 변수를 반복적으로 선언하면 1억 번 선언하면 1번으로 최적화되므로 실행에는 아무런 차이가 없습니다.
JS의 성능에 실제로 영향을 미칠 수 있는 것은 그렇게 작은 점이 아니지만, 그렇다고 무시할 수 있다는 의미는 아닙니다. 그 작은 성능 향상보다 코딩 사고력의 향상이 훨씬 더 중요하기 때문입니다.

    巴扎黑

    var result_logo=$('#result_logo')는 루프 본문 외부에 작성해야 합니다. js 코드를 작성할 때 변경되지 않는 jquery 개체를 캐시해 보세요.
    프로젝트 코드에 반복되는 작성 방법이 많다는 의미는 아닙니다. 최적의 글쓰기 방법입니다

      世界只因有你

      이런 경우:

      으아악

      최적화될 수 있습니다. 하지만 작성하는 변수는 항상 jquery 객체입니다. 변수와 $()를 사용하는 것은 동일합니다

        仅有的幸福

        최신 브라우저는 모두 귀하를 위해 최적화되어 있습니다. 효율성을 실제로 테스트하려면 IE8 9와 10을 사용하여 차이가 큰지 확인할 수 있습니다. 게다가 선택자는 id 선택자인데, 클래스 선택자로 바꾸면 효율성 비교가 나옵니다.

          世界只因有你

          인쇄하는 내용은 작동할 때마다 동일하며 Chrome의 캐싱 메커니즘이 최적화되었습니다

            小葫芦

            오류의 원인은 다음 문장에 있는 것 같습니다.warns about duplicated selectors which could be cached., 루프 외부에서 변수 선언을 작성해 보세요

              世界只因有你

              루프 본문 내에서 레이블을 가져오고 변수를 선언하는 코드를 작성했지만 확실히 개선되지는 않았습니다.

              으아악

              이론적으로 이렇게 작성하면 상황이 조금 개선될 수 있지만 테스트 방법은 전혀 과학적이지 않으며 코드의 효율성을 완전히 반영할 수 없습니다. 코드 효율성에 의존하는 것 외에도 네트워크 속도와도 관련이 있어 반영된 결과가 정확하지 않습니다.

                최신 다운로드
                더>
                웹 효과
                웹사이트 소스 코드
                웹사이트 자료
                프론트엔드 템플릿
                회사 소개 부인 성명 Sitemap
                PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!