MonoDevelop 为每个项目创建这些。我应该将它们包含在源代码控制中吗?
2 回答
有几个长期未决的错误报告,我还想提高一点性能和内存使用。MonoDevelop 为每个程序集或项目创建一个解析器信息数据库 (pidb) 文件。该文件包含有关在程序集中实现的类的所有信息,以及从 Monodoc 中提取的文档。一个 pidb 文件有 3 个部分:第一个是包含文件格式版本的标头(在加载 pidb 时会检查该版本,如果文件与当前实现版本不匹配,将重新生成该文件) )。第二部分是 pidb 文件的索引。它包含数据库中所有类的索引。索引总是完全加载在内存中,以便能够快速定位类。该文件的第三部分包含所有类信息:方法列表、字段、属性、每个这些的文档等等。索引中的每个条目都有一个文件偏移量字段,可以用来完整加载一个类的所有信息(索引只包含名称)。
所以听起来这实际上只是一个优化。除非您发现它对性能有很大影响,否则我个人不会将其包含在源代码控制中:我的猜测是,只有一次只有一个人在从事该项目时,它才会真正保持有效。(如果它很大并且定期更改,您会发现它也会给存储库增加大量开销。我还没有检查过实际大小,但值得检查。)
它们只是缓存的代码完成数据。正如 Jon 链接的帖子所解释的那样,主要原因是为了节省内存,尽管它们确实可以让您在打开项目时无需等待 MD 解析所有源文件和引用的程序集。
pidb 文件可以很快重新生成,因此将它们保存在 VCS 中没有任何好处。事实上,除了 VCS 存储库开销之外,如果人们使用具有不同 pidb 格式的不同版本的 MD 也可能会导致问题,因此我强烈建议不要将它们保留在源代码控制中。