MonoDevelop为每个项目创建它们。我应该将它们包含在源代码管理中吗?
答案 0 :(得分:54)
有好几个待定时间 错误报告,我也想 提高一点性能和 记忆用法。 MonoDevelop创造了一个 分析器信息数据库(pidb) 每个程序集或项目的文件。 该文件包含所有信息 关于在一个实现的类 装配,连同文档 从Monodoc撤出。一个pidb文件 trhee部分:第一部分是 其中包含的标题 事物的文件格式的版本 (加载时检查该版本 pidb,文件将是 如果不匹配则重新生成 当前的实施版本)。该 第二部分是指数 pidb文件。它包含所有的索引 数据库中的类。该指数是 永远满载在内存中 能够快速找到课程。该 该文件的第三部分包含所有 班级信息:列表 方法,领域,属性, 每个人的文件,和 等等。索引中的每个条目都有一个 文件偏移字段,可以使用 完全加载所有信息 一个类(索引只包含 这个名字。)
所以听起来它真的只是一种优化。我个人不会将它包含在源代码管理中,除非你发现它对性能产生了很大的影响:我的猜测是,如果一次只有一个人正在处理这个项目,它只能真正保持有效。 (如果它很大并经常更改,你会发现它也会给存储库带来很大的开销。我没有检查过它的大小实际上是什么,但值得检查。)
答案 1 :(得分:17)
它们只是缓存的代码完成数据。正如Jon链接所解释的那样,主要原因是节省内存,尽管它们还可以帮助您在打开项目时等待MD解析所有源文件和引用的程序集。
pidb文件可以很快重新生成,因此将它们保存在VCS中没有任何好处。实际上,除了VCS存储库开销之外,如果人们使用具有不同pidb格式的不同版本的MD,它也可能导致问题,因此我强烈建议不要将它们保留在源代码管理中。