【问题标题】:Visual studio runs out of memory when opening a large C# file打开大型 C# 文件时,Visual Studio 内存不足
【发布时间】:2016-02-03 15:10:16
【问题描述】:

我有一个非常大的 C# 文件(从语法自动生成 - >100K 行)。 当我尝试创建解决方案并包含此文件时 - 大约 10 秒后,VS 由于内存不足而崩溃。 我看到它发生在它的内存消耗达到〜2GB时。有什么方法可以配置 VS 以使用更多内存?我在一台 32GB 的机器上运行它,所以我有足够的内存可以使用。 或者,这个问题还有其他解决方案吗?

【问题讨论】:

  • 这是一个愚蠢的问题。如果它是生成的代码,你甚至需要打开它什么?如果您认为必须手动管理它,那么您必须重构代码。我会在记事本++中打开文件并将其分解。此外,如果您有 resharper,请确保它已被禁用,或者此文件被排除在外。
  • 什么版本的 Visual Studio?你有没有像this question 中提到的那样的 plagins?
  • 此文件生成时出错 - 所以我正在尝试调试原因。 @VMA - 这是VS2015,我有更清晰的,但禁用它后仍然会发生。我想我的主要问题是为什么 VS 不使用超过 2GB 的空间?
  • 这是它必须调试的行数。 VS 在处理大文件时总是存在这种问题。不只是 VS,任何 IDE 都会遇到 100k LOC。
  • “为什么 VS 不使用超过 2GB”? - 因为还是a 32bit Application

标签: c# visual-studio-2015 out-of-memory


【解决方案1】:

如果您有多个类,则在生成时将所有类分离到它们自己的文件中。

如果您有一个庞大的类,则使用 partial 关键字将 out 方法分离到单独的文件中。

除非你有一个类,用一种方法,对一个非常大的数据集的每个元素做不同的事情,没有理由不应该使用Single Responsibility Principle并将它分解成小的、可重用的类 -即使它生成。

【讨论】:

    【解决方案2】:

    按照 KosalaW 的建议,在 Notepad++ 或 Textpad 等外部​​程序中打开它(我建议使用后者,因为我在 Notepad++ 中遇到过大文件的问题)。

    如果您必须保持原样,假设您正在生成这个 100k 行文件,我建议您将其转储到多个较小的文件中。如果您想以编程方式读取它,您可以一次读取每个较小的文件并逐行运行,甚至可以重新加入它们并以编程方式分析它们。

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2019-02-19
      • 1970-01-01
      • 2015-11-26
      • 2021-08-02
      • 2015-04-07
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多