set9.gms : 집합 요소의 빠른 이동

설명

실행 시간은 참조 세트 i의 크기와
참조 세트에서 동적 세트 요소의 위치입니다. 는
이전 구현에는 실행 시간이
참조 세트의 크기. 새로운 코딩은 위치에 따라 달라집니다.
참조 세트의 요소입니다. 기억력을 희생해서 우리는
시간을 동적 요소의 수에 비례하게 만듭니다.
만 설정합니다.
   k(i) = k(i-1) 빠른 실행 후보이지만 루프 내부에서만 가능
   k(i) = k(i-1) + no +no로 인해 속도가 느려집니다.

기여자: Alex

소형 모델 유형 :크레이지 슬롯


카테고리 : 크레이지 슬롯 테스트 라이브러리


메인 파일 : set9.gms

$title 집합 요소의 빠른 이동 (SET9,SEQ=448)

$onText

실행 시간은 참조 세트 i의 크기에 따라 달라집니다.
참조 세트에서 동적 세트 요소의 위치입니다. 는
이전 구현에는 실행 시간이
참조 세트의 크기. 새로운 코딩은 위치에 따라 달라집니다.
참조 세트의 요소입니다. 기억력을 희생해서 우리는
시간을 동적 요소의 수에 비례하게 만듭니다.
만 설정합니다.
   k(i) = k(i-1) 빠른 실행 후보이지만 루프 내부에서만 가능
   k(i) = k(i-1) + no +no로 인해 속도가 느려집니다.

기여자: 알렉스

$offText

i 참조 세트 / 1*1000000 /, k(i), m(i) / 1,10000,50000/ 설정;

매개변수 s, 반복 실행 횟수;

루프(m,
   k(i) = 아니오; k(m) = 그렇습니다; s = 시간Exec;
   반복하다
      k(i) = k(i-1) (timeExec-s) > 0.5까지;
   rep(m,'fast') = sum(k, k.val)-m.val; k를 표시;
   k(i) = 아니오; k(m) = 그렇습니다; s = 시간Exec;
   반복하다
      k(i) = k(i-1) + no (timeExec-s) > 0.5 까지;
   rep(m,'slow') = sum(k, k.val)-m.val; k를 표시);

담당자(m,'비율') = 담당자(m,'빠른')/rep(m,'느린');

디스플레이 담당자;

* 타이밍/메모리 문제가 있는 오래된 기계로 인해 이 테스트를 수행할 수 없습니다.
* abort$sum(m, rep(m,'ratio') < 50) '뭔가 이상해 보여요';
abort$(smax(m, rep(m,'ratio')) < 50) '뭔가 이상해 보여요';

$exit

---- 28개 PARAMETER 반복 실행 횟수

             빠르게 느린 비율

1 10115.000 3.000 3371.667
10000 4366.000 3.000 1455.333
50000 830.000 3.000 276.667