вторник, 2 июля 2019 г.

Вспомогательные темы инструмента go: кеширование сборки и тестирования

go help cache

Команда go кэширует выходные данные сборки (build output) для повторного использования в будущих сборках. Расположение по умолчанию для данных кэша - это подкаталог go-build в стандартном каталоге кэша пользователя для текущей операционной системы. Установка переменной среды GOCACHE переопределяет это значение по умолчанию, а запуск 'go env GOCACHE' печатает текущий каталог кэша.

Команда go периодически удаляет кэшированные данные, которые недавно не использовались. Запуск 'go clean -cache' удаляет все кэшированные данные.

Кэш сборки правильно учитывает изменения в исходных файлах Go, компиляторах, параметрах компилятора и т.д.: явная очистка кэша не обязательна при обычном использовании. Однако кэш сборки не обнаруживает изменений в библиотеках C, импортированных с помощью cgo. Если вы внесли изменения в библиотеки C в вашей системе, вам нужно будет явно очистить кеш или использовать флаг сборки -a (см. go help build), чтобы принудительно перестроить пакеты, которые зависят от обновленных библиотек C.

Команда go также кэширует успешные результаты тестирования пакета. Смотрите подробности в go help test. Запуск 'go clean -testcache' удаляет все кэшированные результаты теста (но не кэшированные результаты сборки).

Переменная среды GODEBUG может разрешить печать отладочной информации о состоянии кэша:

GODEBUG=gocacheverify=1 заставляет команду go обходить использование любых записей кэша, а вместо этого перестраивать все и проверять, соответствуют ли результаты существующим записям кэша.

GODEBUG=gocachehash=1 заставляет команду go печатать входные данные для всех хэшей содержимого, которые она использует для создания ключей поиска в кэше. Вывод объемный, но может быть полезен для отладки кеша.

GODEBUG=gocachetest=1 заставляет команду go выводить подробности своих решений о том, следует ли повторно использовать кэшированный результат теста.


Читайте также:


Комментариев нет:

Отправить комментарий