我正在使用 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
}
你可能已经知道我在说什么场景。如果我有这样的嵌套调用,那么它会影响我的应用程序的性能吗?
在 Java 中
几乎没有直接影响。 内联 35 到 325 字节字节代码的简单方法,因此它们不会影响性能。35 字节的小方法几乎立即内联,默认情况下"经常"称为最多 325 字节的方法(可以增加)。
你遇到问题的地方是更多的代码更难推理。 更难推理的代码,开发人员很难优化(在某些情况下还有JIT),例如,假设您计算了一个昂贵的参数,嵌套,嵌套,嵌套的调用者丢弃了该参数。 另一个常见的性能问题是转换,例如,字符串被解析为双精度,然后转换为字符串,转换为 BigDecimal ,最后再次转换为字符串。 如果你没有多层嵌套,那么更明显的是,以字符串开头的内容可以保持字符串。
通常情况下,如果有疑问,假设最简单、最清晰的代码是最好的。
简单 - 是
的你应该保持你的代码尽可能直截了当,每个嵌套的函数调用都在程序内存堆栈上创建负载 - 处理器正在记住在哪里跳回,以及带回什么,也没有完成的函数被记住在堆栈上。
更简单? - 一遍又一遍的循环可能会导致有趣的事情,但仍然只有不到 20 个级别或重复几乎是看不见的。