我们在开发系统当中,递归是我们经常使用到底一个算法,如菜单列表,项目类别等。如果递归使用不好,就会造成性能损耗,导致页面加载速度慢等一系列问题。
首先我列举三个,大家在日常当中使用的方式:
1.循环递归,每次都从数据库查询下一级需要的数据
2.一次加载完,再循环递归
3.使用多线程,把数据先加载完,再递归
我大致想了想,一般同学都是这个三做法。那这三个做法在4560条情况下,它们的执行时间分别是:
第一次执行:
第二次执行:
从上面数据来看,也许不是很准确,但是可以看出来,每次从数据查询绝对很慢。
好吧,我贴下代码,最近太忙,没有大致整理,大家凑乎看吧!
数据下载:Data.zip
代码下载:RecursiveStudy.zip
我将在第二篇,用数据库优化方案来说明,如何才是递归最佳做法。