什么是MonoDevelop的.pidb文件?

wei*_*ure 44 monodevelop

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

Jon*_*eet 54

来自MonoDevelop博客文章:

有几个很长时间未决的错误报告,我还想提高性能和内存使用.MonoDevelop为每个程序集或项目创建一个解析器信息数据库(pidb)文件.此文件包含有关程序集中实现的类的所有信息,以及从Monodoc中提取的文档.一个pidb文件有trhee部分:第一个是一个标题,其中包含文件格式的版本(加载pidb时检查该版本,如果文件与当前实现版本不匹配,将重新生成该文件).第二部分是pidb文件的索引.它包含数据库中所有类的索引.索引始终在内存中完全加载,以便能够快速定位类.该文件的第三部分包含所有类信息:方法列表,字段,属性,每个类别的文档,等等.索引中的每个条目都有一个文件偏移字段,可用于完全加载类的所有信息(索引仅包含名称).

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


Mik*_*son 17

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

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