【发布时间】:2011-08-17 05:58:08
【问题描述】:
假设我有一个这样的循环(任何 while 或 for):
loop{
A long code.
}
从时间复杂度来看,我是不是应该把这段代码分成几部分,在循环外写一个函数,反复调用那个函数?
我很久以前读过一些关于函数的东西,重复调用一个函数需要更多的时间或内存或类似的东西,我记不太清了。您能否也提供一些关于此类(时间复杂度、编码风格)的良好参考?
能否提供一些关于堆内存、开销等影响程序性能的参考书或教程?
【问题讨论】:
-
见When to optimize。计算机速度越来越快。我的时间对我来说比 CPU 上的几个额外周期更有价值。虽然有许多环境具有硬性能限制,但它们是 1) 已知的; 2) 设计中的计划; 3) 支持基准/分析。
-
提防premature optimization。然而,让你的代码整洁总是一个好习惯。
-
请记住,具有短代码体的函数往往会在调用站点被 jit-ed 看到en.wikipedia.org/wiki/HotSpot
-
另见this question 引用 Martin Fowler 的话:“这只需要精心设计的代码和小方法 - 从本质上讲,这使得 Hotspot 可以更好地优化并让 CPU 更有效地缓存运行时的代码。”
标签: java performance coding-style