2009-06-20 16 views

Respuesta

54

Desde un MonoDevelop blog post:

había varios desde hace mucho tiempo en espera de informes de errores, y también quería mejorar un poco el rendimiento y uso de memoria . MonoDevelop crea un archivo de base de datos de información del analizador (pidb) para cada ensamblaje o proyecto. Este archivo contiene toda la información sobre las clases implementadas en un ensamblaje , junto con la documentación extraída de Monodoc. Un archivo PIDB tiene secciones trhee: la primera es una cabecera que contiene entre otras cosas la versión del formato de archivo (que la versión se comprueba cuando se carga la PIDB, y el archivo se regenera si él doesn' t coincide con la versión de implementación actual ). La segunda sección es el índice del archivo pidb . Contiene un índice de todas las clases en la base de datos. El índice es siempre cargado por completo en la memoria para ser capaz de localizar rápidamente las clases. La tercera sección del archivo contiene todos los la información de la clase: lista de métodos, campos, propiedades, documentación para cada uno de ellos, y y así sucesivamente. Cada entrada en el índice tiene un campo de desplazamiento de archivo , que se puede usar para cargar completamente toda la información de una clase (el índice solo contiene el nombre).

Parece que es solo una optimización. Personalmente no lo incluiría en el control de código fuente a menos que descubra que hace una gran diferencia en el rendimiento: supongo que solo seguirá siendo válido si solo una persona está trabajando en el proyecto a la vez. (Si es grande y cambia regularmente, puede encontrar que agrega una sobrecarga significativa al repositorio también. No he comprobado para ver cuál es realmente el tamaño, pero vale la pena verificarlo)

+1

Una vez más, Skeet al rescate ... + 1 (como él lo necesita). – ctacke

17

Son solo código en caché datos de finalización Tal como explica la publicación Jon linked, la razón principal es guardar memoria, aunque también evitan que espere que MD analice todos los archivos fuente y los ensamblados a los que se hace referencia cuando abre un proyecto.

Los archivos pidb se pueden regenerar bastante rápido, por lo que no hay ninguna ventaja de mantenerlos en el VCS. De hecho, además de la sobrecarga del repositorio de VCS, también podría causar problemas si las personas usan diferentes versiones de MD con diferentes formatos pidb, por lo que recomiendo no mantenerlos en control de fuente.

Cuestiones relacionadas