2009-04-24 6 views
2

부 테스트 라이브러리를 사용하여 내 응용 프로그램의 단위 테스트를 작성합니다.부스트 기반 단위 테스트 스위트가 느리게 컴파일됩니다.

문제는 테스트 제품군을 포함하는 특정 * .cpp 파일이 특정 크기로 커지면 해당 파일의 컴파일이 매우 느려지 게된다는 것입니다.

나는 BOOST_AUTO_TEST_CASE 매크로를 사용하여 테스트 케이스를 정의합니다.

부스트 버전 1.34.1

빌드 ENV 누군가가 그런 행동의 가능한 이유를 지적한다면 나는 감사 높은 것이다 페도라 9

에서 autotools를 + GCC 4.3입니다.

+0

소스 또는 사전 빌드 된 라이브러리를 사용하고 있습니까? – dirkgently

+0

어떤 요인으로 느려지 는가, 그리고 갑자기 어떻게됩니까? 테스트 케이스를 하나 더 추가하면 모든 것이 10 배 더 느려지 는가? 아니면 특정 시점에 테스트 케이스 당 추가 시간이 오르기 시작하는 것인가? –

+0

>> 소스 또는 미리 만들어진 라이브러리를 사용하고 있습니까? prebuild 라이브러리를 사용합니다. 어떤 차이가 있습니까? >> 어떤 요인으로 느려지 는가, 그리고 갑자기 어떻게됩니까? 어느 시점에서 5 초가 아닌 약 3-5 분이 걸리므로 더 많은 테스트 케이스를 추가해도 시간은 크게 변하지 않습니다. – cppalex

답변

1

실제 메모리가 부족하여 시스템이 스왑 (파일/파티션)을 normaly (스 래싱)보다 훨씬 집중적으로 사용하기 시작할 수 있습니다.

+0

글쎄, 평소보다 많은 메모리를 사용합니다. 그러나 오히려 결과는 이유가 아닙니다. 문제는 그것이 왜 많은 메모리를 사용 하는가하는 것입니다. – cppalex

1

무슨 일이 일어나는지 알아 내려고하는 한 가지 방법은 gcc 옵션 -Q를 사용하여 정상적인 것과 매우 느린 경우의 차이점을 확인하는 것입니다.

1

동일한 테스트 스위트를 여러 테스트 파일로 분할 할 수 있습니다. 이렇게하면 문제가 완화됩니다.