내 상황
개발 한 소프트웨어 모듈에 대한 논문을 작성 중이며 동일한 작업을 위해 런타임을 다른 모듈과 비교하고 싶습니다. 나는 런타임 실험의 단점을 알고 있지만 내 경우에는 그 주위에 방법이 없다고 가정하십시오. (이론적으로 이론적으로 일부 속성을 추론 할 수 있지만 모든 것에 충분하지는 않습니다.)
벤치마킹에 사용하려는 특정 시나리오 에는 문제 의 복잡성 과 세부적인 문제를 결정 하는 랜덤 시드 두 가지 매개 변수가 있습니다. 주로 대한 의존성을 보여주고 싶습니다 . 예비 조사와 이론에 따르면, 이 런타임에 미치는 영향 은 미미하거나 무시할 만합니다. 단일 작업을 완료하는 데 최대 10 분이 걸립니다.
실제 질문
그러한 실험을 수행하는 데 일반적으로 허용되거나 게시 된 절차 또는 적어도 일반적인 함정 목록 (이상적으로 게시)을 찾고 있습니다.
내가 지금까지 찾은 것
아무것도. 인터넷 검색은 모든 종류의 관련없는 결과를 보여 주지만 올바른 용어를 사용하지 않을 수 있습니다. 내가 좋은 표준으로 알고 있는 키워드 최소값 (아래 참조)을 포함해도 도움이되지 않았습니다.
내가 어떻게 할까
가능한 한 비활성화 된 GUI와 같이 잠재적으로 방해가되는 소프트웨어를 사용하여 동일한 시스템에서 모든 실험을 실행하십시오.
모든 모듈에 동일한 시나리오를 선택하십시오 (예 : 동일한 및 r) .
각 시나리오마다 서로 다른 모듈을 무작위 순서대로 직접 테스트하십시오. 다시 말해서, 다른 모듈에 대한 루프가 가장 안쪽에 있습니다. 이것은 기계 성능의 변동이 느리기 때문에 (예를 들어 온도 변화로 인해) 다른 모듈에서 바이어스를 피해야합니다. 임의 순서는 캐싱 또는 하나의 모듈이 항상 같은 모듈 이후에 테스트되는 것과 같은 효과를 통한 편견을 피해야합니다.
각 에 대해 벤치 마크와 다른 시드가있는 여러 시나리오에서 최소 런타임을 사용하십시오. 이것은 개별 실행을 매우 나쁘게 만드는 기계 성능의 짧은 시간 변동으로 인해 다른 모듈에 대한 편견을 피해야합니다.