什么是MonoDevelop的.pidb文件?

时间:2009-06-20 17:47:55

标签: monodevelop

MonoDevelop为每个项目创建它们。我应该将它们包含在源代码管理中吗?

2 个答案:

答案 0 :(得分:54)

来自MonoDevelop blog post

  

有好几个待定时间   错误报告,我也想   提高一点性能和   记忆用法。 MonoDevelop创造了一个   分析器信息数据库(pidb)   每个程序集或项目的文件。   该文件包含所有信息   关于在一个实现的类   装配,连同文档   从Monodoc撤出。一个pidb文件   trhee部分:第一部分是   其中包含的标题   事物的文件格式的版本   (加载时检查该版本   pidb,文件将是   如果不匹配则重新生成   当前的实施版本)。该   第二部分是指数   pidb文件。它包含所有的索引   数据库中的类。该指数是   永远满载在内存中   能够快速找到课程。该   该文件的第三部分包含所有   班级信息:列表   方法,领域,属性,   每个人的文件,和   等等。索引中的每个条目都有一个   文件偏移字段,可以使用   完全加载所有信息   一个类(索引只包含   这个名字。)

所以听起来它真的只是一种优化。我个人不会将它包含在源代码管理中,除非你发现它对性能产生了很大的影响:我的猜测是,如果一次只有一个人正在处理这个项目,它只能真正保持有效。 (如果它很大并经常更改,你会发现它也会给存储库带来很大的开销。我没有检查过它的大小实际上是什么,但值得检查。)

答案 1 :(得分:17)

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

pidb文件可以很快重新生成,因此将它们保存在VCS中没有任何好处。实际上,除了VCS存储库开销之外,如果人们使用具有不同pidb格式的不同版本的MD,它也可能导致问题,因此我强烈建议不要将它们保留在源代码管理中。