嵌套函数或方法调用可以降低应用程序的性能

时间:2015-01-10 10:25:32

标签: java c# c++ asp.net performance-testing

我正在使用asp.net和C#开发应用程序,其中我们的项目架构有很多嵌套函数调用。

public Employe GetEmployeOrder(orderid, employe){
      GetEmployeOrderWithDetails(orderid, employe.ShippingId,BillingId);
 }

public Employe GetEmployeOrderWithDetails(guid orderid,guid ShippingId,guid BillingId)
{
  //  Another function call
}

您可能已经知道我在谈论什么情景。如果我有这样的嵌套调用,那么它是否会影响我的应用程序的性能?

2 个答案:

答案 0 :(得分:3)

在Java中

几乎没有直接影响。内联35到325字节字节代码的简单方法会被内联,因此它们不会影响性能。 35个字节的小方法几乎立即内联,并且默认情况下内联“频繁”调用最多325个字节的方法(可以增加)。

如果遇到更多代码更难以解决问题。难以推理的代码,开发人员难以优化(在某些情况下还有JIT),例如:假设您计算嵌套,嵌套,嵌套调用者丢弃的昂贵参数。另一个常见的性能问题是转换,例如将String解析为double,将其转换为String,再转换为BigDecimal,最后转换为String。如果你没有多少级别的嵌套,那么以String开头的内容就更明显了。

通常情况下,如果有疑问则假设最简单,最清晰的代码是最好的。

答案 1 :(得分:0)

简单 - 是的

你应该保持你的代码尽可能直接,每个嵌套的函数调用都会在程序内存堆栈上创建负载 - 处理器正在记住要跳回的位置,以及要回收的内容,还有未完成的函数会在堆栈中被记住。

简单? - 一遍又一遍的复发循环可能导致有趣的事情,但仍然,不到20个级别或复发几乎是不可见的。