임의의 정방 행렬을 반전시키는 두 가지 반복 방법을 비교하고 있습니다. 행렬은 임의적이기 때문에 모든 테스트 사례는 다른 반복 횟수와 다른 경과 시간을 모두 사용합니다. 내 질문은 평균 CPU 시간 외에도 두 방법 모두 방법을 비교하는 데 유용한 정보로 얻은 반복 평균 값입니다.
임의의 정방 행렬을 반전시키는 두 가지 반복 방법을 비교하고 있습니다. 행렬은 임의적이기 때문에 모든 테스트 사례는 다른 반복 횟수와 다른 경과 시간을 모두 사용합니다. 내 질문은 평균 CPU 시간 외에도 두 방법 모두 방법을 비교하는 데 유용한 정보로 얻은 반복 평균 값입니다.
답변:
일반적으로 두 성능 비교 방법이 모두 적합합니다.
CPU 시간을 비교 하는 것은 가장 흥미로운 지표입니다. 하루가 끝나면 어떤 방법이 더 빠른지에 관심이 있기 때문입니다. 그러나 종료 기준이 비교 가능한지 확인하십시오 (예 : 두 방법 모두 동일한 정확도로 근사값을 산출 함). 단점은 테스트를 수행 한 머신에서 어떤 메소드 (및 더 중요한 구현 )가 더 빠르다 는지를 알려줍니다 . 다른 아키텍처 또는 소프트웨어를 가진 다른 머신이 동일한 승자를 선택한다고 보장 할 수 없습니다.
반면에 반복 횟수를 비교하는 것은 기계 독립적이지만 두 방법이 매우 다른 반복을 갖는 경우 잠재적으로 오도 할 수 있습니다. 매우 낮은 정확도 만 필요한 경우).
예, 두 숫자를 모두주는 것이 합리적입니다. 세 번째 옵션도 있습니다.
[1] 여러 번의 실행에 대한 통계를 명확히 제시합니다. 평균을 표시하는 경우 표준 편차도 포함하는 것을 잊지 마십시오.
반복 횟수가 잘못된 경우 "속도"를 제안하기 때문에 오해의 소지가있는 메트릭이라고 생각합니다. 이 차이점을 보여주는 몇 가지 다른 전제 조건을 비교하는 간단한 예는 다음을 참조하십시오. http://www.dealii.org/developer/doxygen/deal.II/step_6.html#Possibilitiesforextensions
다른 답변에서 명확하지 않은 경우 반복 횟수가 큰 O 인수입니다.
절대 속도에는 좋지 않습니다. 왜냐하면 평균 반복 시간에 따라 달라지기 때문에 방법마다 크게 다를 수 있습니다.
예를 들어, 배열 인덱스 계산 비용을 무시하는 경향이 있으며 이는 CPU 시간의 큰 부분을 차지할 수 있습니다.
추가 : 또한 다른 곳에서 지적했듯이 메소드를 호출 할 때마다 일반적으로 설정 비용이 있습니다. 매트릭스가 일반적으로 크지 않은 경우, 설정 비용 자체가 CPU 시간의 큰 부분을 차지할 수 있습니다 (제거하면 속도에 큰 차이가 생길 수 있습니다).