Udostępnij za pośrednictwem


Buforowanie binarne

Większość portów w rejestrze publicznym vcpkg jest kompilowana ze źródła. Kompilując ze źródła, narzędzie vcpkg może zapewnić maksymalną zgodność przy użyciu tego samego środowiska, narzędzi kompilacji, flag kompilatora, flag konsolidatora i innych konfiguracji używanych w projekcie do kompilowania zależności.

Po włączeniu buforowania binarnego po utworzeniu każdego pakietu ze źródła program vcpkg tworzy pakiet binarny. Pakiety binarne przechowują dane wyjściowe kompilacji pakietu: pliki binarne, pliki integracji systemu kompilacji, dokumentację użycia, licencję i inne pliki. Jeśli późniejszy przebieg wymaga zainstalowania buforowanego pakietu, program vcpkg określa, czy przywrócić buforowany pakiet binarny, czy wyzwolić kompilację ze źródła.

Dzięki temu buforowanie binarne zmniejsza wpływ następujących wad budynku ze źródła:

  • Zduplikowane nakłady pracy: zmniejszając liczbę przypadków, w których pakiet musi zostać skompilowany ze źródła.
  • Długie czasy kompilacji: Przywracanie pakietu binarnego jest zwykle bardzo szybką operacją, która trwa kilka sekund.

Buforowanie binarne jest szczególnie skuteczne w scenariuszach ciągłej integracji, w których efemeryczne kontenery lub agenci kompilacji wymuszają pracę z funkcją czyszczenia łupków za każdym razem. Korzystając z chmurowej pamięci podręcznej binarnej (takiej jak Pakiety GitHub lub Azure DevOps Artifacts), można utrwalać pakiety binarne między przebiegami, aby zapewnić maksymalną szybkość, ponieważ ponowne kompilowanie ma miejsce tylko wtedy, gdy wprowadzisz zmiany w zależnościach lub konfiguracji.

Napiwek

Zaleca się utworzenie binarnej pamięci podręcznej z uprawnieniami do odczytu i zapisu dla każdego potoku lub przepływu pracy ciągłej integracji. Indywidualni deweloperzy powinni mieć dostęp tylko do odczytu do utworzonej przez ciągłą integrację pamięci podręcznej binarnej.

Pamięci podręczne binarne mogą być hostowane w różnych środowiskach. Najbardziej podstawową formą pamięci podręcznej binarnej jest folder na komputerze lokalnym lub w sieciowym udziale plików. Pamięci podręczne mogą być również przechowywane w dowolnym kanale informacyjnym NuGet (takim jak pakiety GitHub lub artefakty usługi Azure DevOps), usłudze Azure Blob Storage, usłudze Google Cloud Storage i wielu innych usługach.

Jeśli dostawca ciągłej integracji oferuje natywną funkcję "buforowania", zaleca się użycie buforowania binarnego vcpkg i natywnej metody w celu uzyskania najbardziej wydajnych wyników.

Ponowne tworzenie pamięci podręcznej binarnej

Chociaż nie jest zalecany jako mechanizm dystrybucji binarnej, buforowanie binarne może służyć do ponownego użycia danych wyjściowych kompilacji z wielu systemów. Na przykład deweloperzy mogą używać pakietów binarnych utworzonych przez ciągłą integrację uruchamianą na swoich komputerach lokalnych. W przypadku innych metod ponownego użycia i zintegrowania plików binarnych generowanych przez narzędzie vcpkg zapoznaj się z tematem vcpkg export.

Można na przykład skonfigurować źródło danych NuGet hostowane w usłudze Azure Artifacts w celu akceptowania pakietów binarnych utworzonych z potoku ciągłej integracji i ponownego używania ich w środowisku projektowym.

Musisz skonfigurować źródło danych usługi Azure Artifacts, aby przyznać uprawnienia do odczytu i zapisu potokowi usługi Azure DevOps, a także przyznać uprawnienia tylko do odczytu hostom w zespole deweloperskim.

Domyślna pamięć podręczna binarna

Buforowanie binarne jest domyślnie włączone z dostawcą files w pierwszej prawidłowej lokalizacji:

  • Windows
  1. %VCPKG_DEFAULT_BINARY_CACHE%
  2. %LOCALAPPDATA%\vcpkg\archives
  3. %APPDATA%\vcpkg\archives
  • System inny niż Windows
  1. $VCPKG_DEFAULT_BINARY_CACHE
  2. $XDG_CACHE_HOME/vcpkg/archives
  3. $HOME/.cache/vcpkg/archives

Ograniczona pomoc w narzędziu jest dostępna za pośrednictwem polecenia vcpkg help binarycaching.

Buforowanie binarne obejmuje tylko pliki binarne, które tworzysz. Aby buforować pliki źródłowe i wstępnie utworzone narzędzia, zobacz Buforowanie zasobów.

Następne kroki

Przeczytaj samouczki, aby dowiedzieć się, jak skonfigurować pamięć podręczną binarną i dokumentację składni konfiguracji: