Skip to main content

코드 검사 분석 시간이 너무 오래 걸립니다

code scanning 구성을 세밀하게 조정해 분석 시간을 최소화할 수 있습니다.

code scanning 분석의 빌드 시간을 단축하기 위해 시도해 볼 수 있는 몇 가지 방법이 있습니다.

메모리 또는 코어 늘리기

행렬 빌드를 사용하여 분석 병렬 처리

여러 작업으로 구성된 워크플로의 분석 속도를 높이기 위해 행렬을 사용하도록 워크플로를 수정할 수 있습니다. 자세한 내용은 워크플로에서 작업 변형 실행을(를) 참조하세요.

기본 CodeQL 분석 워크플로는 언어 행렬을 활용하여 각 언어의 분석을 병렬로 수행합니다. 하지만 고급 설정을 통해 CodeQL을 사용하며 ‘CodeQL 초기화’ 단계에서 분석할 언어를 직접 지정한 경우에는 각 언어에 대한 분석이 순차적으로 진행됩니다. 이 구성에서는 고급 설정 워크플로를 수정하여 행렬을 사용하도록 하면 분석 속도를 높일 수 있습니다. 예제는 일부 언어는 CodeQL 고급 설정으로 분석되지 않았습니다.의 워크플로 추출을 참조하세요.

단일 워크플로에서 분석되는 코드의 양을 줄입니다.

분석 시간은 일반적으로 분석되는 코드의 양에 비례합니다. 고급 설정에서 CodeQL을 사용할 때 한 번에 분석되는 코드의 양을 줄이면 분석 시간을 단축할 수 있습니다. 예를 들어 테스트 코드를 제외하거나, 코드를 여러 개의 하위 집합으로 나누어 분석하는 방식으로 워크플로를 분리하여 실행할 수 있습니다.

생성된 코드에서 발견된 경고

CodeQL 분석을 여러 워크플로로 분할하는 경우, 리포지토리의 전체 코드를 분석하는 워크플로를 schedule 에서 하나 이상 실행하는 것이 좋습니다. CodeQL은(는) 구성 요소 간의 데이터 흐름을 분석하므로 일부 복잡한 보안 동작은 전체 빌드에서만 검색될 수 있습니다.

          `schedule` 이벤트 중에만 실행

분석이 push 또는 pull_request 이벤트 중 느려질 수 있습니다. 그렇다면 schedule 이벤트에서만 트리거되도록 분석을 설정할 수 있습니다. CodeQL을 code scanning 분석에 사용하는 경우, 고급 설치 워크플로를 통해 구성 가능하지만, 기본 설정에서는 구성할 수 없습니다. 자세한 내용은 GitHub Actions 이해을(를) 참조하세요.

워크플로가 실행되는 쿼리 또는 규칙 확인

분석 시간을 줄이는 또 다른 방법은 끌어오기 요청에서 실행되는 워크플로에서 중요하다고 판단되는 쿼리나 규칙만 실행하는 것입니다. code scanning에 타사 도구를 사용하는 경우 해당 도구의 설명서를 참조하세요.

CodeQL에는 각 언어에서 사용할 수 있는 기본 쿼리 도구 모음이 두 가지 있습니다. CodeQL 데이터베이스 빌드를 최적화했는데도 처리 시간이 여전히 너무 오래 걸린다면, 실행하는 쿼리의 수를 줄여볼 수 있습니다. 기본 쿼리 도구 모음은 자동으로 실행되며 품질과 속도 간의 최적의 균형을 제공합니다.

고급 설정에서 CodeQL을 사용할 때 기본 쿼리 외에도 추가 쿼리나 쿼리 도구 모음을 실행할 수 있습니다. 워크플로가 queries 요소를 사용하여 실행할 추가 쿼리 도구 모음 또는 추가 쿼리를 정의하는지 확인합니다. 추가 쿼리 도구 모음 또는 쿼리를 사용하지 않도록 설정하여 실험할 수 있습니다. 자세한 내용은 코드 검사를 위한 고급 설정을 사용자 지정하기을(를) 참조하세요.