{"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 с размещением, рассмотрите возможность обновления до более крупные бегуны.\nGitHubЭто модули runner с большим объемом ОЗУ, ЦП и дискового пространства, чем стандартные средства выполнения. Для получения дополнительной информации о более крупные бегуны и code scanningсм. [Использование крупных средств выполнения](/ru/actions/how-tos/manage-runners/larger-runners) и [Настройка более крупных модулей выполнения для настройки по умолчанию](/ru/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/configure-larger-runners).\n\nЕсли для выполнения анализа используются локальные средства выполнения code scanning , можно увеличить объем памяти или количество ядер на этих модулях выполнения. Если вы используете CodeQL расширенную настройку для анализа, ознакомьтесь с рекомендуемыми аппаратными ресурсами, чтобы CodeQL убедиться, что локальные средства выполнения соответствуют этим требованиям. Дополнительные сведения см. в разделе [Рекомендуемое оборудование для запуска CodeQL](/ru/code-security/reference/code-scanning/codeql/hardware-resources-for-codeql).\n\n## Использование матричных сборок для параллелизации анализа\n\nЧтобы ускорить анализ рабочих процессов, связанных с несколькими заданиями, можно изменить рабочий процесс для использования матрицы. Дополнительные сведения см. в разделе [Выполнение вариантов заданий в рабочем процессе](/ru/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations).\n\nПо умолчанию Рабочий процесс анализа CodeQL используется матрица языков, которая приводит к параллельному анализу каждого языка. Однако если вы используете CodeQL расширенную настройку и указали языки, которые вы хотите проанализировать непосредственно на шаге \"Initialize CodeQL\", анализ каждого языка будет выполняться последовательно. В этой конфигурации можно ускорить анализ, изменив рабочий процесс расширенной настройки для использования матрицы. Пример см. в извлечении рабочего процесса в [Некоторые языки не были проанализированы с помощью расширенной настройки CodeQL](/ru/code-security/reference/code-scanning/troubleshoot-analysis-errors/some-languages-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/reference/workflows-and-actions/workflow-syntax#onpushpull_requestpull_request_targetpathspaths-ignore).\n\nДля языков, таких как JavaScript, Python и TypeScript, которые CodeQL анализируются без компиляции исходного кода или для скомпилированного языка, `build-mode: none`можно указать дополнительные параметры конфигурации, чтобы ограничить объем кода для анализа. Дополнительные сведения см. в разделе [Параметры настройки рабочих процессов для сканирования кода](/ru/code-security/reference/code-scanning/workflow-configuration-options#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/get-started/understand-github-actions#events).\n\n## Проверьте, какие запросы или правила выполняются рабочим процессом\n\nДругим вариантом снижения времени анализа является выполнение только запросов или правил, которые считаются критически важными в рабочих процессах, выполняемых при запросах на вытягивание. Если вы используете стороннее средство code scanningдля, обратитесь к документации по инструменту.\n\nВ CodeQLнем есть два основных набора запросов, доступные для каждого языка. Если вы оптимизировали CodeQL сборку базы данных и процесс еще слишком длинный, можно уменьшить количество выполняемых запросов. Набор запросов по умолчанию выполняется автоматически: он обеспечивает лучший компромисс между качеством и скоростью.\n\nЕсли вы используете CodeQL расширенную настройку, вы можете выполнять дополнительные запросы или наборы запросов в дополнение к запросам по умолчанию. Проверьте, определяет ли рабочий процесс дополнительный набор запросов или дополнительные запросы для выполнения с помощью элемента `queries`. Вы можете поэкспериментировать с отключением дополнительных запросов или набора запросов. Дополнительные сведения см. в разделе [Параметры настройки рабочих процессов для сканирования кода](/ru/code-security/reference/code-scanning/workflow-configuration-options#using-queries-in-ql-packs)."}