写代码的时候总是能碰到这样的结构
for(.......){ int temp = ?
int temp = ?; for( ...........){
} }
不知道编译器会不会对这两种结构做优化,先测试一下大数据集的执行效率对比
然后进行内存测试
811ms
848ms
不能说明问题,执行多次,结果都差不多,现在加大数据的数量
37s
37s
精确到秒,时间竟然是一致的,我也很惊讶,我以为 变量定义在内部每次被创建会消耗大量时间
下面是内存测试
注意,此时gc应该在后台是有工作的
变量定义在内部,加快了垃圾回收的速度,我也是经过了多次测试,一开始前后内存相同,我还以为是代码问题
结论是变量定义在内部开销可能第一点,但是不否认多任务情况下,gc繁忙的时候,采取哪种方式更优的问题,不过将变量定义在内部,有助于代码的可读性。