What are MonoDevelop.pidb files?

MonoDevelop creates them for each project. Should I include them in the initial control?

+44
monodevelop
Jun 20 '09 at 17:47
source share
2 answers

From the MonoDevelop Blog Entry :

Error reporting was expected for some time, and I also wanted to improve performance and memory usage a bit. MonoDevelop creates a Parser Information Database (pidb) file for each assembly or project. This file contains all the information about the classes implemented in the assembly along with the documentation pulled from Monodoc. The pidb file has trhee: the first is a header that contains, among other things, a version of the file format (this version is checked when pidb is loaded, and the file will be if it does not match the current version of the implementation). the second section is the pidb file index. It contains the index of all classes in the database. The index is always fully loaded into memory to be able to quickly find classes. the third part of the file contains all the information about the class: a list of methods, fields, properties, documentation for each of them and soon. Each entry in the index has a file offset field that you can use to fully load all the class information (the index contains only the name).

So it sounds just optimization. I personally would not include it in the initial control, if you do not find that it is of great importance for productivity: I think that it will really remain valid if only one person works on the project at a time. (If it is large and changes regularly, you may find that it adds significant overhead to the repository, too. I have not checked what the size really is, but it's worth checking.)

+54
Jun 20 '09 at 17:54
source share

They are just cached code completion data. As John explains, the explanation explains that the main reason is to save memory, although they also save you from waiting for MD to parse all source files and assembly references when opening a project.

Pidb files can be quickly restored, so there is no advantage to storing them in VCS. In fact, as well as the overhead of the VCS repository, this can also cause problems if people use different versions of MD with different pidb formats, so I highly recommend not keeping them in source control.

+17
Jun 24 '09 at 3:38
source share



All Articles