6
votes

Inconvénients de Ccache

J'utilise CCACHE pour des expériences, mais je ne suis pas tout à fait sûr de l'utiliser. Quelqu'un peut-il expliquer la situation lorsque CCACHE peut entraîner un comportement incorrect. Ou devrions-nous toujours utiliser Ccache? Toute personne qui a obtenu ce Ccache produit des fichiers d'objet incorrects ou des modifications des fichiers d'en-tête ne sont pas pris en compte?


2 commentaires

Ccache.samba.org dit qu'il ne devrait pas y avoir de mauvais comportement, et que si quelqu'un le sait d'un Il devrait le signaler au lieu de répondre aux questions sur Stackoverflow.


Tout à fait. Merci, je devrais utiliser Ccache mis à jour et continuer à rechercher des bogues signalés existants qui ne sont pas manipulés pour rester conscient de la bogue peut-être bug.


3 Réponses :


9
votes

Je n'ai pratiquement jamais eu de problèmes lors de l'utilisation de Ccache . Parfois (par exemple une fois par mois ou même moins), je nettoie entièrement son cache avec Ccache -C .

J'ai plus de problèmes avec complexes makefile -s qu'avec CCACHA .

Pour être court, ne vous embêtez pas, et lorsque vous soupçonnez quelque chose, il suffit d'exécuter Ccache -C .

Vous devez évidemment éviter Ccache lorsque vous comparez l'heure de la compilation. (Vous pouvez passer --Time ou -Fedition-rapport à gcc ou g ++ dans ce cas).

Addenda

I mon opinion, Ccache doit être au moins configurable pour désactiver la mise en cache de compilation à l'aide des plug-ins gcc, car un plug-in GCC pourrait faire n'importe quoi (par exemple, interroger une base de données ou WebService) qui n'est pas mise en cachette. Voir Ce message .


3 commentaires

Merci de suggestion ... :-). BTW Quelles sont les situations quand vous obtenez des problèmes parfois? Parce que lorsque nous obtenons des problèmes, il est difficile de comprendre qu'il arrive à cause de Ccache. Et aussi lorsque vous obtenez des problèmes, "Ccache -C" est la solution absolue, alors il doit y avoir un problème avec CCACHACH.


Non, je soupçonne fortement que les problèmes hypothétiques soient en makefile-s. À Melt GCC-Melt.org My Makefile-S SONT BUGGY (et GCC Makefile-S sont peut-être incomplets. pour des reconstructions partielles). Encore une fois, je n'ai jamais suspecté Ccache de faire de mal.


Ccache étant généralement tiré sous forme gcc si un mauvais Makefile oublie d'exécuter une commande de compilation, avec ou sans Ccache vous avoir des ennuis.



4
votes

Vous avez bien formulé votre question en demandant mal comportement .

Le mauvais comportement Ccache peut avoir ralentissement de votre compilation s'il est utilisé de manière incorrecte. CCACHE doit analyser le fichier pour reconnaître les compilations passées, une compilation réelle via Ccache est plus lente que sans elle. Seul un coup de cache est plus rapide.

Ccache est utile lorsque vous recompilez fréquemment le même code sans le modifier. Il n'accélérera pas la compilation de code nouveau ou modifié.


0 commentaires

3
votes

J'ai eu une fois des problèmes avec des scons compilant via Ccache (méthode Symlink).

Paramètres de l'environnement

Il s'est avéré que Ccache exige la variable $ à domicile à définir dans l'environnement, alors que SCONS ne le définit pas par défaut (SCONS a la stratégie d'isoler les constructions de l'environnement autant que possible. Par défaut).

Je ne suis pas totalement sûr que cela comptait comme un problème avec Ccache ou simplement interopérer avec des scênes. Outre cet ennemi, je n'ai jamais eu de problème avec Ccache.

Port SSD

J'ai adopté l'habitude de relier ~ / .ccache à TMPFS pour éviter de porter inutilement mes fichiers SSD. Évidemment, ce n'est pas un problème avec Ccache, car sans cela, les choses seraient encore pires. ( juste quelque chose à garder à l'esprit )


0 commentaires