Question

Eclipse CDT fournit deux indexeurs pour le code C / C ++ (Préférences> C / C ++> de Indexer). Quelqu'un sait-il ce que la différence exacte entre ces deux?

Le fichier d'aide est pas tout à fait éclairante:

  

"CDT soutient la contribution de   indexeurs supplémentaires, avec 2 indexeurs   étant prévu avec le défaut CDT   de presse:

     
      
  • rapide C / C ++ Indexer: offre la plus rapide des capacités d'indexation - à la fois   des déclarations et des références croisées   information. Ceci est le recommandé   indexeur.

  •   
  • Full C / C ++ Indexer: fournit l'indexation encore plus précis   capacités au coût de   performance - les déclarations et   informations de référence croisée ».

  •   

Qu'est-ce que cela signifie d'être plus précis : il fait plus de choses index, et si oui quels sont ceux

Était-ce utile?

La solution

Voici un extrait de la page CDT décrivant leur analyse et l'indexation ( CDT / modèles / Vue d'ensemble Parsing). Il donne une assez bonne description de ce que les différences sont et où l'indexeur rapide peut échouer:

  

L'analyse et la résolution de liaison est un   processus lent, cela est un problème   parce que l'utilisateur attend l'édition de code   des fonctionnalités telles que le contenu aider à être   vite. Pour cette raison, les magasins CDT   les informations de liaison dans un sur disque   cache appelé « l'index » ou « le PDOM »   (Document Model persistantes Object) dans   afin d'être en mesure de fournir des fonctionnalités   qui répondent rapidement aux demandes des utilisateurs.

     

Construire l'index implique l'analyse syntaxique   tout le code dans un projet, résoudre   toutes les liaisons et l'écriture de ces   les liaisons à l'index. L'indice est   puis progressivement mis à jour chaque fois que   l'utilisateur édite un fichier.

     

Les versions plus anciennes de soutien CDT trois   différents modes d'indexation, rapide   l'indexation, l'indexation complète et non   indexage. Le réglage par défaut étant   l'indexeur rapide parce que l'indexation d'une   grand projet peut être un temps   processus. La différence entre la   est que indexeurs rapide et complète la   indexeur rapide ignorera les fichiers d'en-tête   qui ont déjà été analysés une fois,   alors que le plein indexeur toujours   réanalysera un fichier d'en-tête chaque fois qu'il   est inclus. Cependant, il est important   comprendre que la pleine indexeur,   malgré son nom, est toujours pas complètement   précis.

     

Lorsqu'un fichier d'en-tête est inclus dans un   fichier source, il est soumis à aucune   macros qui ont été définies à ce   point. Certains en-têtes de bibliothèque utilisent des macros   en collaboration avec préprocesseur   conditionals (#ifdefs) a partiellement   inclure un fichier d'en-tête. parfois, ces   un fichier d'en-tête est inclus plus   une fois dans un projet, si les macros   l'en-tête dépend sont différents   chaque fois que l'en-tête est inclus alors   les différentes parties de l'en-tête peuvent être   inclus dans différents fichiers source.   Ni indexeur sera exacte dans   ce scénario car il ne fera que   index l'en-tête pour la première fois il est   rencontré.

     

Le indexeur intégral têtes réanalysera   il a déjà rencontré, mais il   ne sera pas ré-indexer. Donc   les fichiers sources qui comprennent un en-tête peut   être analysé de façon plus précise, mais le   lui-même en-tête ne sera indexé le   une fois. L'indexeur complète est beaucoup   plus lent que l'indexeur rapide car   de l'analyse syntaxique supplémentaire qu'il fait, mais il   est à peine plus précis. Pour   cette raison l'indexeur complète n'est pas   recommandé et a été retiré de   la version actuelle de la CDT.

     

Chaque projet a un seul PDOM   associé avec. Le PDOM est stocké   sur le disque en tant que fichier binaire plat. le   indexeur uniquement les en-têtes d'index   sont inclus par les fichiers source, donc si   il y a un fichier .h dans le projet   ne soit pas inclus par toute .c ou   .cpp, puis normalement il ne sera pas   indexé. Cependant, il y a une préférence   réglage pour indexer tous les fichiers dans le   projet.

Autres conseils

Je crois qu'il reparses toujours tout trouvé / fichiers inclus sans « cache ». La raison si que le contenu des fichiers peuvent dépendre des définitions de préprocesseur de sorte qu'il est toujours reparsed. analyseur rapide suppose que rien n'a changé depuis le fichier a été rencontré.

(mais je peux me tromper)

  

Quelqu'un sait-il ce que la différence exacte entre ces deux?

Dans mon expérience, sur les tas de 32Mo.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top