Können vorkompilierte Header mit distcc arbeiten?

8

Ich habe ein großes Projekt, für das ich vorkompilierte Header implementiert habe. Ich würde auch gerne mit distcc arbeiten können. Laut Abschnitt 4.12 im Google-Code-Papier hier

  

gcc Version 3.3 enthält einige Leistungsverbesserungen, die distcc weniger sofort nützlich machen.

     

One ist vorkompilierte Header, wobei der interne Status des Compilers nach dem Lesen einer Gruppe von allgemeinen Headerdateien auf die Festplatte ausgegeben wird. Dies ist nützlich für Programme, die einen großen und festen Satz von Headern enthalten, wobei das Parsen der Header einen großen Teil der Kompilierzeit beansprucht. Momentan kann distcc dies unterstützen, indem die .pch-Statusdatei in ein gemeinsames Dateisystem gestellt wird. Eine bessere Lösung könnte distcc in der Zukunft hinzugefügt werden.

Ich denke nicht, dass die Verwendung eines gemeinsam genutzten Dateisystems eine gute Lösung für mich ist. Aber es gibt auch spätere Erwähnungen eines möglichen Patches, um vorkompilierte Header und distcc besser zusammen zu arbeiten: Ссылка . Dies würde bedeuten, DISTCC_PCH auf dem Client zu setzen (oder die Compiler-Option -fpch-preprocess zu benutzen, siehe hier ) und die pch -Option zu DISTCC_HOSTS für die Server hinzufügen. Ich habe das versucht, aber es scheint nicht zu funktionieren, also vermute ich, dass der Patch nicht integriert war.

Gibt es Unterstützung für vorkompilierte Header in distcc, die über ein freigegebenes Dateisystem hinausgehen? Oder irgendeinen vernünftigen Weg, die Technologien zur Zusammenarbeit zu bringen?

Update: Ich habe jetzt eine Situation, wo ich vorkompilierte Header-Kompilierung für einen lokalen Build und für einen distcc-Build ich erzwinge die vorkompilierten Header-Dateien verwenden, so dass lokale und distcc-Builds beide genau die gleiche Quelle kompilieren. Mit einer sorgfältigen Auswahl von vorkompilierten Headern kann ich einen lokalen Debug-Build um etwa 40% schneller als zuvor bekommen und ein distcc-Build ist nur etwa 4% langsamer. Ich würde es gerne mit vorkompilierten Headern und distcc kombinieren, um eine Beschleunigung, sagen wir 10 oder 20%, mit distcc - Builds zu erreichen, mit ziemlich wenig Aufwand und Aufdringlichkeit (schnellere Builds sind nicht meine Hauptverantwortlichkeit und außerdem in einem Unternehmensumfeld Ich bin in dem, was ich tun kann, beschränkt.)

    
TooTone 06.07.2015, 15:48
quelle

0 Antworten

Tags und Links