.Net MVC内存管理和性能改进-超大控制器

.Net MVC内存管理和性能改进-超大控制器,.net,performance,.net,Performance,我有一个.NETMVC项目,它有大约25个控制器,许多支持类(大多数带有静态函数,为控制器中的代码提供一些处理帮助)。然后,从对控制器的调用中输出大约100个视图,不同于通过对控制器的请求请求所请求的功能 现在,每个控制器都包含数千行代码。我的理解是,每个请求都会创建一个控制器实例,这是我担心的原因。如果对控制器的每个HTTP调用都必须实例化包含数千行代码的对象,那么这可能是一个主要的性能问题 所以问题是,1)我的假设正确吗,即每个控制器对象实例都包含数千行源代码的字节码副本?2) 将控制器分解

我有一个.NETMVC项目,它有大约25个控制器,许多支持类(大多数带有静态函数,为控制器中的代码提供一些处理帮助)。然后,从对控制器的调用中输出大约100个视图,不同于通过对控制器的请求请求所请求的功能

现在,每个控制器都包含数千行代码。我的理解是,每个请求都会创建一个控制器实例,这是我担心的原因。如果对控制器的每个HTTP调用都必须实例化包含数千行代码的对象,那么这可能是一个主要的性能问题

所以问题是,1)我的假设正确吗,即每个控制器对象实例都包含数千行源代码的字节码副本?2) 将控制器分解为更小的控制器会使代码更有效吗?(这可能是一项主要任务,因为指向旧控制器方法的URL也需要在浏览器端javascript中更改)。3) 还有其他优化性能的建议吗


提前感谢。

代码是不可变的。它在相同类型的实例之间共享。此外,未使用的类型和方法通常根本不会被运行时触及。这不是一个问题

(2) 从代码质量的角度来看可能很有用,但从性能的角度来看可能不太有用


你需要分析你的代码来理解什么是慢的。我可以从这个问题上看出,你的绩效经验不足以独自提出可能的假设。您需要先通过示例学习。

是否有一个探查器可用于实时应用程序,以便更好地了解性能和瓶颈?是的,将100%的负载放在上面。然后暂停调试器10次。它将在最热的代码中停止最多。否则,可以购买.NET分析器。