今天刚发现这样的一个问题,客户那边显示一个页面要40多分钟,而且在遍历List的时候,会把很多数据从数据库Load到内存,导致不仅耗时,还耗内存。
逻辑基本是这样的,首先拿到一个 List
接着遍历这个List,为里面的每一个元素去数据库查询其它数据,或是执行一些复杂操作后得到一些新的数据
对新的数据做过滤,得到匹配的数据传回来。。。
就这样一挥而就,代码一下子就写出来了。
却没有注意到一个问题。对新数据做过滤的条件,也可以用在List那里。
也就是说,拿List的时候,先用相同的条件,把不符合的List给过滤掉,这样留下来的List里面的元素就会少一些,之后遍历List的时候,性能也会快不少,特别是数据量大的情况。