代码之家  ›  专栏  ›  技术社区  ›  weiqure

什么是MonoDevelop的.pidb文件?

  •  44
  • weiqure  · 技术社区  · 16 年前

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

    2 回复  |  直到 16 年前
        1
  •  54
  •   Jon Skeet    16 年前

    从A MonoDevelop blog post :

    有好长时间的等待 Bug报告,我还想 提高一点性能和 内存使用。单体发育创造了 解析器信息数据库(PIDB) 每个程序集或项目的文件。 此文件包含所有信息 关于在中实现的类 装配,连同文件 从Monodoc中提取。一个pIDB文件 Trhee部分:第一个部分是 包含其他内容的标题 东西文件格式的版本 (加载时检查该版本 pidb,文件将 如果不匹配则重新生成 当前实现版本)。这个 第二部分是 PIDB文件。它包含所有 数据库中的类。索引是 总是在内存中完全加载 能够快速定位课程。这个 文件的第三部分包含 课程信息:列表 方法、字段、属性, 每一项的文件,以及 等等。索引中的每个条目都有一个 文件偏移字段,可以使用 完全加载所有信息 类(索引只包含 这个名字)

    所以这听起来像是一个优化。我个人不会将其包含在源代码管理中,除非您发现它 大的 与绩效的区别:我的猜测是,只有一个人同时在项目上工作,它才会真正有效。(如果它很大并且经常变化,您可能会发现它也会给存储库增加大量开销。我还没有检查尺寸,但值得检查。)

        2
  •  17
  •   Mikayla Hutchinson    16 年前

    它们只是缓存代码完成数据。正如post-jon-linked所解释的,主要原因是保存内存,尽管它们也可以在打开项目时避免等待MD解析所有源文件和引用的程序集。

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