我之前有5个项目,每个项目在我的C#应用程序中都有5-10个目录。现在我已经将其更改为10个项目,每个项目可以有2-3个目录。
在我的web应用程序中,我现在引用了这十个项目,而不是以前的2-3。
如果我以这种方式继续我的开发,如果我随着应用程序的变大而添加更多的项目,是否会有性能损失。我想知道的是一次性加载时间,内存使用率(是我引用的每个DLL,存储在项目本身中),以及代码必须从一个项目中的对象移动到另一个项目中的时间。
发布于 2013-03-25 00:21:11
如果引用所有这些项目,加载程序集时只会有轻微的抖动。
但我认为你问错了问题。不应根据拥有的类或目录的数量将代码划分为不同的程序集。如果是这样的话,一个项目将是最优的。
您应该关注可以在内部实现的内容。如果您有这十个程序集,那么程序的哪些部分可以对程序的其余部分隐藏。是否存在一个依赖关系树,其中某些项目不必引用其他项目?
这应该由你决定,而不是有多少文本文件放在哪里。
发布于 2013-03-24 23:59:59
性能差异可以忽略不计(启动时间可能会慢几毫秒)。如果你的应用程序架构更适合多个项目,那就去做吧。
发布于 2013-03-25 00:27:55
是的,但在运行时并不明显。
Visual Studio加载多个项目的速度会较慢。对于5-10个项目,你可能不会注意到,但在30-40个项目中,你会开始注意到。
编译(通常)会更慢。这是因为需要将项目依赖项复制到依赖它们的项目的输出文件夹中。如果你有更多的项目,你就有更多的输出文件可供复制。您可以通过将每个项目的输出文件夹设置为相同的位置来缓解这一问题,但对于web应用程序项目来说,这会更加困难,而且无论如何这都是一件痛苦的事情。
在运行时,在解析程序集时,所有这些额外的磁盘访问都会涉及到性能损失。
但是,在实际执行代码时,性能影响可以忽略不计(如果有的话)。在一个程序集中调用代码的成本并不比在另一个程序集中调用代码的成本更高(一旦它被加载并被JITed,并且假设它不是内联的)。
https://stackoverflow.com/questions/15600622
复制相似问题