一次提高运算速度的经历
非专业菜鸟,写程序只注重实现,不考虑速度、内存。写了一段自认为很精妙的代码,结果却运行的奇卡无比。
一个复杂的计算包含循环的循环循环,我也记不清多少次嵌套循环中,而且循环次数很多,具体就不统计了
该程序是一个随机模拟,希望的是大量、快速,所以,而第一次写的程序预计竟然是20秒一次模拟计算,
如果想要做10万次模拟的话,那么将近需要50个小时的时间。而随机试验10万次真的一点不多,如果要搞100万次模拟
那么这个程序基本是不能用了。
想过很多方法去对程序进行优化,后来发现在较底层的循环中有一个对shapefile的查询操作,没一次模拟计算都需要进行
4*25*N次查询(N为一变量,100以上)
听说数据库查询笔记耗资源,所以,就在计算之初做了一次查询,将查询结果放在数组中,后来底层的循环中不再直接查询数据库,
直接与数组进行交互,一运行,那速度老快了