简化输入数据很重要

最近实现一个算法,最初懒,直接拿原始图依照需求直接算,没想到后面出现需求变动,需要算更深的度,计算量爆炸,再加上比最初约定的数据大很多,边直接多了五倍多!
 
直接就跑不动了,后面开始优化。
首先内存不够硬盘来凑,用paldb来替换原来存储再内存的消息,paldb的读取性能挺让我惊喜的,与内存的map差距不大。这样改下来还是算不动。。。
把输入的图进行简化,简化后点的数量减少了1/3,边的数量减少了75%。
对简化的图进行计算。算法迭代次数从原来的9次减少到3次,算法核心计算代码减少了50%,内存由原来的200G跑不动到128GB可以跑。。。
以后不能偷懒,要先想想输入的数据能不能简化一下。。。