{"meta":{"title":"Анализ сканирования кода занимает слишком много времени","intro":"Вы можете точно настроить конфигурацию code scanning, чтобы свести к минимуму время анализа.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/reference","title":"Reference"},{"href":"/ru/code-security/reference/code-scanning","title":"Проверка кода"},{"href":"/ru/code-security/reference/code-scanning/troubleshoot-analysis-errors","title":"Устранение ошибок анализа"},{"href":"/ru/code-security/reference/code-scanning/troubleshoot-analysis-errors/analysis-takes-too-long","title":"Анализ занимает слишком много времени"}],"documentType":"article"},"body":"# Анализ сканирования кода занимает слишком много времени\n\nВы можете точно настроить конфигурацию code scanning, чтобы свести к минимуму время анализа.\n\nСуществует несколько подходов, которые можно попытаться сократить время сборки в анализе code scanning.\n\n## Увеличение объема памяти или числа ядер\n\nЕсли вы используете GitHubразмещенные средства выполнения для анализа code scanning рассмотрите возможность обновления до более крупные бегуны. Это GitHubразмещенных в среде runners с большим объемом ОЗУ, ЦП и дискового пространства, чем стандартные средства выполнения. Дополнительные сведения о более крупные бегуны и code scanningсм. в разделе AUTOTITLE и \\[AUTOTITLE[](/ru/actions/using-github-hosted-runners/about-larger-runners).]\\(/code-security/code-scanning/managing-your-code-scanning-configuration/configuring-larger-runners-for-default-setup)\n\nЕсли вы используете автономные средства выполнения для выполнения анализа code scanning, можно увеличить память или количество ядер на этих модулях выполнения. Если вы используете CodeQL с расширенной настройкой для анализа, просмотрите рекомендуемые аппаратные ресурсы для CodeQL, чтобы убедиться, что локальные средства выполнения соответствуют этим требованиям. Дополнительные сведения см. в разделе [Рекомендуемое оборудование для запуска CodeQL](/ru/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/recommended-hardware-resources-for-running-codeql).\n\n## Использование матричных сборок для параллелизации анализа\n\nЧтобы ускорить анализ рабочих процессов, связанных с несколькими заданиями, можно изменить рабочий процесс для использования матрицы. Дополнительные сведения см. в разделе [Выполнение вариантов заданий в рабочем процессе](/ru/actions/using-jobs/using-a-matrix-for-your-jobs).\n\nПо умолчанию Рабочий процесс анализа CodeQL использует матрицу языков, которая приводит к параллельному выполнению анализа каждого языка. Однако если вы используете CodeQL с расширенной настройкой и указали языки, которые необходимо проанализировать непосредственно на шаге \"Initialize CodeQL\", анализ каждого языка будет выполняться последовательно. В этой конфигурации можно ускорить анализ, изменив рабочий процесс расширенной настройки для использования матрицы. Пример см. в извлечении рабочего процесса в [Некоторые языки не были проанализированы с помощью расширенной настройки CodeQL](/ru/code-security/code-scanning/troubleshooting-code-scanning/some-languages-were-not-analyzed).\n\n## Уменьшение объема кода, анализируемого в одном рабочем процессе\n\nВремя анализа обычно пропорционально объему анализируемого кода. Если вы используете CodeQL с расширенной настройкой, можно сократить время анализа, уменьшая объем анализируемого кода одновременно. Например, исключив тестовый код или прервав анализ в несколько рабочих процессов, которые анализируют только подмножество кода за раз.\n\nПри использовании `build-mode: autobuild` или `build-mode: manual`, для скомпилированных языков, таких как Java, Kotlin, Go, C, C++ и C#, CodeQL анализирует весь код, созданный в ходе выполнения рабочего процесса. Чтобы ограничить объем анализируемого кода, выполняйте сборку только того кода, который требуется проанализировать, указав необходимые шаги сборки в блоке `run`. Можно объединить указание собственных шагов сборки с помощью фильтров `paths` и `paths-ignore` в событиях `pull_request` и `push`, чтобы рабочий процесс выполнялся только при изменении определенного кода. Дополнительные сведения см. в разделе [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore).\n\nДля таких языков, как JavaScript, Python и TypeScript, которые CodeQL анализируют без компиляции исходного кода, или для скомпилированного языка с `build-mode: none`использованием , можно задать дополнительные настройки для ограничения объёма кода для анализа. Дополнительные сведения см. в разделе [Параметры настройки рабочих процессов для сканирования кода](/ru/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#specifying-directories-to-scan).\n\nЕсли вы разделяете анализ CodeQL на несколько рабочих процессов, мы по-прежнему рекомендуем использовать хотя бы один рабочий процесс, который выполняется на `schedule` основе всего кода в репозитории. Так как CodeQL анализирует потоки данных между компонентами, некоторые сложные расширения функциональности безопасности можно обнаружить только в полной сборке.\n\n## Выполнение только во время события `schedule`\n\nВы можете обнаружить, что анализ замедляется во время или `push` событиях`pull_request`. В этом случае можно настроить анализ только для триггера события `schedule` . Если вы используете CodeQL для анализа code scanning, вы можете настроить его с помощью расширенного рабочего процесса установки, но не в настройке по умолчанию. Дополнительные сведения см. в разделе [Понимание GitHub Actions](/ru/actions/learn-github-actions/understanding-github-actions#events).\n\n## Проверьте, какие запросы или правила выполняются рабочим процессом\n\nДругим вариантом снижения времени анализа является выполнение только запросов или правил, которые считаются критически важными в рабочих процессах, выполняемых при запросах на вытягивание. Если вы используете стороннее средство для code scanning, обратитесь к документации по инструменту.\n\nВ CodeQLсуществует два основных набора запросов, доступные для каждого языка. Если вы оптимизировали сборку базы данных CodeQL и процесс все еще слишком длинный, можно уменьшить количество выполняемых запросов. Набор запросов по умолчанию выполняется автоматически: он обеспечивает лучший компромисс между качеством и скоростью.\n\nЕсли вы используете CodeQL с расширенной настройкой, вы можете выполнять дополнительные запросы или наборы запросов в дополнение к запросам по умолчанию. Проверьте, определяет ли рабочий процесс дополнительный набор запросов или дополнительные запросы для выполнения с помощью элемента `queries`. Вы можете поэкспериментировать с отключением дополнительных запросов или набора запросов. Дополнительные сведения см. в разделе [Параметры настройки рабочих процессов для сканирования кода](/ru/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#using-queries-in-ql-packs)."}