这个问题是关于Java编码,我的问题是很容易,所以我会用一个小例子:)关于性能(内存或CPU)
我有一个String数组充满争论解释它,我必须检查它的长度几次,所以,最好将变量的数量(数组长度)保存在一个变量中,或者每次调用长度?我想存储变量会消耗更多的内存,反之亦然使用更多的CPU,只想问你认为什么更好,谢谢!
例子:
String[] arguments = {"a","b","c"};
int numberOfArguments = arguments.length;
if(numberOfArguments == 1)do whatever
if(numberOfArguments == 2)do whatever
if(numberOfArguments == 3)do whatever
等
OR
String[] arguments = {"a","b","c"};
if(arguments.length == 1)do whatever
if(arguments.length == 2)do whatever
if(arguments.length == 3)do whatever
编辑:我知道其中的差别将是非常小的..但我要请一个漫长的过程,认为大,一百万个“arguments.length”,所以对于这种情况,我认为牺牲一个超小的内存来存储这个变量对于cpu来说应该更好一些,而不是检查长度为一百万t的变量imes比检查一个总是相同的变量值,你觉得怎么样?
当你检查字节码时,你会发现什么? –
我怀疑你会注意到很大的不同。无论如何,我同意@HovercraftFullOfEels你应该比较结果字节代码来检查编译之后是否有任何区别。在附注中,“switch..case”怎么样? –
这两种情况下内存消耗和CPU负载的差异非常微小,如果您的代码在80年代的计算机上运行,您将无法注意到它。 – Renan