2009-06-20 7 views

Antwort

54

Aus MonoDevelop blog post:

Es gab mehrere lange Zeit anhängig Bugreports, und ich wollte auch ein bisschen um die Leistung verbessern und Speichernutzung. MonoDevelop erstellt eine Parser Information Database (PIDB) Datei für jede Assembly oder jedes Projekt. Diese Datei enthält alle Informationen über Klassen, die in einer Baugruppe zusammen mit Dokumentation aus Monodoc implementiert werden. Eine PIDB Datei hat trhee Abschnitte: der erste ist ein Header, der unter anderem Dinge die Version des Dateiformats enthält (diese Version wird geprüft, wenn die PIDB Laden, und die Datei regeneriert werden wenn es doesn‘ t entsprechen der aktuellen Implementierungsversion ). Der zweite Abschnitt ist der Index der Pidb-Datei. Es enthält einen Index aller Klassen in der Datenbank. Der Index ist immer voll im Speicher geladen, um in der Lage, Klassen schnell zu lokalisieren. Der dritte Abschnitt der Datei enthält alle die Klasseninformationen: Liste der Methoden, Felder, Eigenschaften, Dokumentation für jede dieser, und so weiter. Jeder Eintrag im Index hat ein Dateioffsetfeld , das verwendet werden kann , um alle Informationen einer Klasse vollständig zu laden (der Index enthält nur den Namen).

So klingt es wie es ist nur eine Optimierung. Ich persönlich würde es nicht in die Quellcodeverwaltung einbeziehen, es sei denn, Sie finden es große Unterschied zur Leistung: Ich denke, es wird nur gültig bleiben, wenn nur eine Person an dem Projekt arbeitet. (Wenn es groß ist und sich regelmäßig ändert, können Sie feststellen, dass es dem Repository einen erheblichen Aufwand hinzufügt. Ich habe nicht überprüft, wie groß die Größe tatsächlich ist, aber es lohnt sich.)

+1

Noch einmal, Skeet zur Rettung ... + 1 (wie er es braucht). – ctacke

17

Sie sind nur Cache-Code Abschlussdaten. Wie der Post Jon Link erklärt, besteht der Hauptgrund darin, Speicher zu sparen, obwohl sie Sie auch davor bewahren, darauf zu warten, dass MD beim Öffnen eines Projekts alle Quelldateien und referenzierten Assemblierungen analysiert.

Die PIDB-Dateien können ziemlich schnell neu generiert werden, so dass es keinen Vorteil hat, sie im VCS zu behalten. Neben dem VCS-Repository-Overhead kann es auch zu Problemen führen, wenn Benutzer unterschiedliche Versionen von MD mit unterschiedlichen PIDB-Formaten verwenden. Daher rate ich dringend davon ab, sie in der Quellcodeverwaltung zu belassen.