Bigoish: Rust 알고리즘의 경험적 계산 복잡도 테스트하기
bigoish는 Rust 알고리즘의 경험적 계산 복잡도를 테스트하는 라이브러리입니다.
사용자가 제공한 함수의 실행 시간을 다양한 입력 크기에 대해 측정하고, 이를 여러 복잡도 모델(예: 상수, 선형, 로그, nlogn 등)과 비교하여 가장 적합한 모델을 검증합니다.
이를 통해 구현한 알고리즘이 기대한 복잡도에 부합하는지 자동으로 확인할 수 있으며, 테스트 시 입력 크기 범위를 충분히 넓히고 적절한 크기의 입력을 사용하는 것이 정확도를 높이는 데 중요합니다.
또한, release 프로파일과 test 프로파일 간의 최적화 차이로 인한 결과 차이를 줄이기 위해 release 모드에서 테스트를 실행하는 방법도 안내합니다.
이 라이브러리는 CPU 사용 시간 또는 CPU 명령어 수를 기반으로 런타임을 측정하며, 시각적 그래프를 통해 적합도를 확인할 수 있어 개발자에게 실용적인 성능 검증 도구를 제공합니다.