{"id":1481,"date":"2014-11-24T15:02:21","date_gmt":"2014-11-24T14:02:21","guid":{"rendered":"http:\/\/my.stargazer.at\/?p=1481"},"modified":"2014-11-24T15:05:38","modified_gmt":"2014-11-24T14:05:38","slug":"ccache-more-speed","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2014\/11\/24\/ccache-more-speed\/","title":{"rendered":"ccache == mehr Tempo?"},"content":{"rendered":"<p>Viele Leute sind der Meinung, dass ccache &#8211; gerade bei Gentoo &#8211; ein Element ist, das die Compile-Zeit extrem reduziert. Doch wann hilft ccache wirklich? Und bringt das wirklich was?<\/p>\n<p>Sehen wir den Tatsachen ins Auge:<br \/>\nccache parsed den Aufruf um sicherzustellen, dass es ein einziger Compile ist, da es nichts f\u00fcr Linken oder das Bauen von mehreren Source-Files auf einmal (Ausnahme -fwhole-program) bringt. Dann wird der Compiler angeworfen. Nachdem Preprocess wird das Ergebnis an einem temp. Speicherplatz abgelegt und mit md4 gehashed. Dann geht&#8217;s an die Suche im Dateisystem: Ist eine Datei mit dem selben md4 vorhanden, wird derer compilierte Version zur\u00fcckgeliefert oder eben der Compiler angeworfen. <\/p>\n<p><!--more-->Sprich, preprocessing, hashing und Kopieren sind unsere gr\u00f6\u00dften Zeitfresser hier, die immer ausgef\u00fchrt werden &#8211; egal ob wir im Cache einen Treffer haben oder nicht.<\/p>\n<p>Um das Ganze noch mit ein paar Zahlen zu w\u00fcrzen: Bei einem Debugging einiger Pakete, die beim Bauen immer wieder fehl schlugen, kam ich auf eine Hit-Rate von knappen 35% im Cache &#8211; obwohl die selben Pakete immer und immer wieder gebaut wurden. Dazu kommt noch dass das Hashen inetwa genau so CPU Intensiv wie Compilen selbst ist und mir dank dem erh\u00f6hten I\/O mir nicht wirklich einen Bonus brachte und ich unterm Strich sogar langsamer unterwegs war.<\/p>\n<p>Wenn ich mir da noch die Fehler anschaue, die mir ccache ab und an verursacht, verabschiede ich mich von diesem FEATURE-Flag nur zu gerne.<\/p>","protected":false},"excerpt":{"rendered":"<p>Viele Leute sind der Meinung, dass ccache &#8211; gerade bei Gentoo &#8211; ein Element ist, das die Compile-Zeit extrem reduziert. Doch wann hilft ccache wirklich? Und bringt das wirklich was? Sehen wir den Tatsachen ins Auge: ccache parsed den Aufruf um sicherzustellen, dass es ein einziger Compile ist, da es nichts f\u00fcr Linken oder das Bauen von mehreren [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":1484,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[599,51,39],"class_list":["post-1481","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-related-stuff","tag-ccache","tag-gcc","tag-gentoo"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=1481"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1481\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media\/1484"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=1481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=1481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=1481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}