6

我正在开发一个大量使用代码生成的项目。它生成的一些文件包含超过 25 万行代码。VS (2K5) 处理得不太好,但 R# (4.01) 每两分钟左右就会抛出一个内存不足异常。

将它们拆分为部分类/单独的文件在短期内不是一种选择,尽管可能会在以后。

是否有任何巧妙的 IDE 技巧来处理这个问题?

编辑:所以人们立即(非常明智地)说“没有那么大的文件”并建议将其分解为较小文件的方法。

这很好,但我正在执行一项有时间限制的任务,环顾四周并决定要优化什么。我的问题非常具体地是“如何在 IDE 中轻松查看异常大的文件”,而不是“如何重构项目”。出于问题的目的,请想象该文件是只读的。:)

4

8 回答 8

6

I would at least change huge files extention to something like .cpp_gen or .cpp_huge to remove syntax highlighting, outlining etc. and then reassign build tool back to C/C++ compiler tool for them.

于 2008-10-16T10:02:41.587 回答
3

Seems like this R# tool (is that Resharper?) is the problem. Can you disable it? Otherwise, changing the file type for the generated code might make sense - presumably, you aren't going to be doing major editing on those files, so losing syntax coloring and other features specific to source files wouldn't be an issue.

于 2008-10-16T15:15:15.793 回答
2

哇!

25 万行代码?

你不应该从机器的角度思考,而应该从人类的角度思考。假设您想将该代码传递给其他人,您能看到时间来查看代码的作用吗?

设计模式是用来处理这些问题的,尝试从小处着手,重构它,然后更深入并开始应用更多的 DP

您将拥有越来越少的代码行,是的,最好的技巧之一是根据它的建议分成几个文件。

于 2008-10-16T09:26:21.630 回答
2

假设您不是手动编辑生成的代码。(=坏主意!!)

您可以将生成的文件放在从命令行编译的单独解决方案中,然后从您正在处理的项目中引用这些 dll。

于 2008-10-16T09:29:01.530 回答
1

Is the problem when you open the file for editing in Visual Studio? I've noticed that VS editor can be quite slow and inefficient on large files. Also, you could try turning off certain options, e.g. word-wrapping kills my machine for some reason.

Otherwise you could use something else like Textpad with syntax highlighting installed to edit the problematic large source file... not as nice, for sure.

于 2008-10-16T12:10:30.767 回答
1

Don't use visual studio. There is too much going on in VS.

Since the file is read only, you wont be using any IDE features (Intellisense, Refactoring tools, formatting).

You will probably get better performance using a simpler application, such as notepad++ for simply viewing the file. Notepad++ will do standard language highlighting if you like color.

于 2008-10-16T15:32:41.577 回答
0

您不能在编译时分解文件并使用预处理器将它们重新组合在一起吗?

于 2008-10-16T09:25:43.487 回答
0

必须有可能以某种方式将这些文件的大块分组到单独的库中。然后,您将它们分成几个项目。试过这个?您的源代码/项目的当前结构是什么?

于 2008-10-16T09:34:26.760 回答