2017-05-16 1 views
-1

js 함수를 Set 또는 Array에 저장하는 것이 더 좋습니까? 어떻게 이해, 이진 트리입니다. 그리고 거기에 세트를 저장 비교 기능이 있어야합니다.JS 세트와 함수를 저장하는 배열

"better"는 모든 항목에 대해 성능, 검색 및 삭제 및 마지막으로 for 루프를 읽고 쓰는 것을 의미합니다. 각 프레임에서 이러한 함수를 호출합니다. 따라서 시간을 절약하는 것이 매우 중요합니다.

메모리에 관해서는 함수가 많지 않기 때문에 메모리에 대해서는별로 신경 쓰지 않습니다. 배열 당 100-500 개 이상의 함수와 5-10 개의 배열이 있습니다. 전체 1000-5000 기능.

나는 그 세트가 추가와 제거에 더 좋다는 것을 알고 있으며, 배열은 요소를 반복하는 것이 더 좋다. 그러나 나는 그것이 기능을 위해 어떻게 작동하는지 이해할 수 없다.

+0

문서별로 : "Set 객체를 사용하면 프리미티브 값이나 객체 참조 중 어떤 유형의 ** 고유 값 **을 저장할 수 있습니다." – mhodges

+1

"더 나은"의미가 무엇인지 명확히 할 수 있습니까? – Soviut

+0

알았어. 고유 한 기능을 저장합니다. 나는 단지 어느 것이 기능을 위해 더 좋은지 알고 싶다. 숫자 나 문자열의 경우 검색 및 제거 할 때 세트에 저장하는 것이 더 좋습니다. – Gor

답변

0

성능 메트릭이 매년 바뀔 수 있기 때문에 모든 성능 사례에서 프로필을 만들어야합니다. 수십만 개의 항목에 도달 할 때까지 측정 가능한 성능 차이가 있음을 눈치 채지 못할 것입니다.

질문에 정의한 사양에 따라 간단한 대답은 중요하지 않습니다. 함수는 Javascript에서 일급 시민이므로 배열 또는 집합이 데이터에 대해 작동하는 방식과 함수에 대해 작동하는 방식간에 차이가 없습니다.

매 프레임마다 수천 가지 기능을 반복하는 성능 문제는 발생하지 않습니다. 이것은 핵심 자바 스크립트 기능이며 고도로 최적화되었습니다. 당신이 최적화 할 필요가있는 곳은 함수가 복잡할수록 더 오래 걸릴 것이기 때문에 함수 자체입니다.

이제 걱정할 필요없이 배열을 사용하고 프로젝트를 빌드하고 성능 병목 현상이 발생했는지 확인하십시오. 그런 다음 코드를 프로파일 링하여 병목 현상이 발생한 위치를 확인할 수 있습니다. 그들은 배열 조작에 기인 한 것이 아니라 함수 자체에서 코드가 실행될 가능성이 높습니다.

+0

Ok @Soviut 업데이트 된 질문입니다. – Gor

+0

@Gor 질문을 반영하도록 답변을 업데이트했습니다. 짧은 답변은 성능 병목 현상이되지 않기 때문에 배열을 사용하십시오. – Soviut

관련 문제