js 최적화 횟수 과 다 한 순환 성능 문제 고려

천만 개의 무 작위 수 를 생 성 한다 고 가정 하면 일반적인 방법 은 다음 과 같 습 니 다
 
var numbers = [];
for (var i = 0; i < 10000000; i++) {
  numbers.push(Math.random());
}
그러나 IE 에서 이 코드 를 실행 할 때 사용자 가 이 스 크 립 트 를 중단 할 지 여 부 를 알려 주 는 창 이 팝 업 됩 니 다.이런 상황 이 발생 하면 가장 먼저 생각 나 는 것 은 순환 체 를 최적화 하 는 것 이다.그러나 분명히 순환 체 는 간단 하고 최적화 할 여지 가 없다.순환 체 를 비 워 도 힌트 는 존재 합 니 다.그래서 나 는 IE 에서 순환 횟수 가 특정한 값 을 초과 하면 스 크 립 트 를 멈 추 라 는 힌트 가 나온다 고 결론 을 내 렸 다.원인 을 찾 았 으 니 어떻게 해결 해 야 합 니까?내 가 먼저 생각 한 것 은 천만 번 의 순환 을 몇 번 의 횟수 가 적은 순환 으로 나 누 는 것 이다.예 를 들 어 백 번 으로 나 뉘 어 매번 에 10 만 번 의 순환 을 집행 한다
 
for (var i = 0, j; i < 100; i++) {
  for (j = 0; j < 100000; j++) {
    ......
  }
}
IE 는 우리 가 상상 하 는 것 보다 멍청 하지 않 고 전체적인 순환 횟수 가 천만 번 인지 안다.따라서 이 100 만 번 의 순환 을 분리 해 집행 해 야 한다.자바 script 은 단일 스 레 드 이지 만 setTimeout 이나 setInterval 을 통 해 다 중 스 레 드 를 모 의 할 수 있 습 니 다.전체 코드 최 적 화 는 다음 과 같다.

좋은 웹페이지 즐겨찾기