程序开发完毕,实现了功能,我们的脸上红扑扑的,显示出我们感觉到自己多么的富有成就感。然而,用户忽然来报,你nnd看你编的烂程序,运行起来我的电脑其他的事情就不用干了!~~~我们的脸更红了~~ 或多或少,作为程序员,我们都碰到过这种事情。我们的程序需要优化,从什么地方下手呢?我们有些茫然,这类的书不怎么多。 我想,要解决这个问题,我们需要一个经典名言,透过现象看本质。 ok,先从看的见,摸的着的说,恩,一台电脑。电脑的本质是什么呢?存取程序控制。恩,回答完毕。涉及三个问题,存取,程序,控制。存取:数据的存取,指令的存取,程序:算法,控制:人鸡(注:“鸡”通“机")交互。 好,一个程序执行的流程是我们把它放到内存(存取),在内存中运行(恩,还是那个人鸡交互),离开内存(存取)。好的,我们现在发现,优化围绕在内存中展开,当然,这是算法固定的情况下。那么优化需要的本质就找到了:我们怎么样去更有效率的存取数据,怎样找到更有效率的算法。 程序的执行过程中需要数据,恩,很清楚,那么我们现在给它的是它必须的吗? 好大一块肉夹馍,先吃馍,先吃肉,还是一块吃呢? 思考完这两个问题,估计你已经知道在何处优化了。 下面的胡思乱想是关于bug的,我们知道,程序总是在内存中加载,执行,释放。跟吃饭差不多。让我们考虑那块肉夹馍。嘴巴就那么大,装不下所有,不然嘴都动不了,强往嘴里塞,大家都知道后果,不是噎死,就是憋死。因为越界很可能堵塞气管。当然,细嚼慢咽是提倡的,但是有些情况也不允许,因为有可能你正在参加大胃王比赛。还是那个肉夹馍,忽然,塞到牙了,于是,先剔了半天牙~~杯具!有人说要多喝水,有人说要放弃剔牙,接着吃,最后一位更离谱,居然提醒我们,便秘记得看医生。 找bug的问题好像清晰了许多,看来医生很有成为程序员的潜质。
转载于:https://www.cnblogs.com/qiezi/archive/2010/12/08/1900658.html