忽略模块化和可读性,在针对许多子划分函数的性能方面具有大功能的影响是什么? (C语言一般)。
答案 0 :(得分:3)
由于函数调用较少,大函数可能比许多小函数具有较小的性能增益。但我的一般规则是:让编译器处理优化并专注于功能和安全性。
答案 1 :(得分:2)
函数是任何编程语言中代码组织的重要组成部分。虽然,性能方面,拥有单个大型函数会减少函数调用的使用,从而减少堆栈跳转并导致更好的代码。但是,并非每个项目都具有不模块化且代码难以理解或更容易混淆或误导的奢侈品。随着时间的推移,具有大功能的项目的成本将远远大于具有小功能的项目,在维护,重构,功能增强等方面。此外,只有在特定环境中进行分析时,功能才会很大,并且可以在某些情况下,只要设计精良且简单,大功能无法分解成小块且完全可以接受。
记住编写函数的第一条规则:do one thing and one thing well
。
答案 2 :(得分:1)
在C编程中为每个函数调用一个堆栈帧被创建因此在单个函数的情况下,将只有一个堆栈并且不需要堆栈跳转但是在许多子划分函数的情况下,每个函数将具有单独的堆栈和每个函数调用都会有堆栈跳转,因此性能可能会降低,具体取决于编译器的优化。