Ccache

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 6. februar 2019; checks kræver 3 redigeringer .

ccache

ccache 3.1.6 på Gentoo Linux
Type compiler cache
Udvikler Andrew Tridgell
Skrevet i C [1]
Operativ system Unix-agtig
Hardware platform software på tværs af platforme
nyeste version 3.7.1 (1. maj 2019)
Licens GNU GPL
Internet side ccache.dev

ssache (fra den engelske  compiler cache ; udtales "sikesh") - en cache af C og C++ compilere til Linux og andre Unix -lignende systemer.

Brug af ccache kan i høj grad fremskynde opbygningen af ​​nogle pakker eller projekter, der er kompileret flere gange, da kun filer, der er ændret siden sidste kompilering, bliver kompileret igen.

Sådan virker det

Når en fil kompileres, beregnes dens hash , og hvis en sådan fil allerede er til stede i registeret over kompilerede filer, vil den ikke blive kompileret igen, men den gamle binære fil vil blive brugt. Dette kan fremskynde samlingen af ​​nogle pakker med 5-10 gange.

Dette tager højde for forskellige compilerversioner og byggemuligheder. Det betyder, at hvis du engang har bygget et projekt med -O2-optimering ved hjælp af ccache , så vil filen blive kompileret igen, når du bygger med -O3- optimering , mens den gamle fil bliver gemt i ccache -registret , men en ny vil blive tilføjet .

Fejlkompilerede filer

Hvis en fil er kompileret forkert én gang, vil den ikke blive rettet ved genkompilering uden at ændre parametrene. Dette kan undgås ved at slette filer fra cachen. Mappen, hvor standardcachen er gemt, er $homedir/.ccache/ . Til rengøring er det nødvendigt at slette alle filer, da de er sorteret efter hash fra kildefiler for hurtigere søgning, og den søgte fil ikke kan skelnes fra andre. Dette kan gøres med kommandoen ccache -C .

Relaterede projekter

ccache bruges aktivt i Gentoo og andre kildebaserede distributioner:

Der er også Distcc for at fremskynde pakkebyggeri .

Noter

  1. Cachen Open Source-projektet på Open Hub: Languages-side - 2006.

Links