什么是MonoDevelop的.pidb文件?

MonoDevelop为每个项目创build。 我应该把它们包含在源代码pipe理中吗

从MonoDevelop博客文章 :

有好几个很长的等待bug报告,我也想提高一点性能和内存的使用。 MonoDevelop为每个程序集或项目创build一个parsing器信息数据库(pidb)文件。 此文件包含有关在程序集中实现的类的所有信息,以及从Monodoc中提取的文档。 一个pidb文件有trhee部分:第一个是头文件,其中包含文件格式的版本(在加载pidb时会检查该版本,如果文件与当前实现版本不匹配,则会重新生成该文件)。 第二部分是pidb文件的索引。 它包含数据库中所有类的索引。 索引总是完全加载到内存中以便能够快速定位类。 文件的第三部分包含所有的类信息:方法列表,字段,属性,每个文档等等。 索引中的每个条目都有一个文件偏移量字段,可用于完全加载类的所有信息(索引只包含名称)。

所以这听起来好像只是一个优化。 我个人不会把它包含在源代码pipe理中,除非你发现它对性能有很大的影响 :我的猜测是,只有一个人一次只能在一个项目上工作,它才会真正保持有效。 (如果它很大,并且经常变化,你可能会发现它也会给存储库增加大量的开销,我没有检查过这个大小实际上是什么样的,但值得检查。

他们只是caching的代码完成数据。 正如Jon所链接的文章解释的那样,主要原因是节省了内存,尽pipe它们还可以帮助您在打开项目时不必等待MDparsing所有的源文件和引用的程序集。

pidb文件可以很快地重新生成,所以将它们保留在VCS中是没有好处的。 事实上,除了VCS存储库开销,如果人们使用不同版本的MD和不同的pidb格式,也可能会导致问题,所以我强烈build议不要将它们保持在源代码pipe理中。