[D12打卡]
这些常见的性能优化方法,之前都了解的不全面,待其他大神给我们开开眼界.
我以前优化大多都是感性的,就是凭感觉或经验,并没有些实际的指标来观测.
一方面自己只是做开发,管好自己的程序即可,其他方便(比如系统环境)可能是有心无力.
-------------------------
"过早优化是万恶之源"
我也是很赞同的,用户没几个,花那么多精力做过度优化没必要,还不如拿那些时间来学学专栏.等真的有一定规模和趋势了,再用"二八原则"有针对性的优化.
我个人一般在写代码时,会在可以进一步优化的地方加个注释,暂时先在够用的情况下,怎么简单怎么来,后期如果有必要了,再来找这些注释,看什么地方值得优化.
-------------------------
应用程序优化方面,可以谈谈我的经历:
编译器优化: 刚参加工作时,培训期间练习一些算法,会对比每个人程序的性能. 我当时还是用的VC6.0++. 而有的同学用dev-c++编译器, 结果成绩经常被吊打. 即使是同一份源码,编译出来的程序也是有很大的差距.
算法优化: 正在学算法专栏. 也是要根据实际情况来优化, 利用二八原则,有针对性的优化,不要什么都优化,一天才执行一次的程序, 耗时1s 和0.001s的差距并不大. 虽然数字上相差了很多倍.
异步优化: 比如lua的协程,epoll代替原来的select和poll.
多线程代替多进程: 线程的切换理论上是比进程切换的成本低. 但有时候考虑到扩展性,还会从单进程改为多进程模型.
善用缓存:也可利用二八原则, 看值不值得. 是用空间换时间,还是时间换空间.
------------------
做优化,真的是要见机行事,像老师说的,[不要只会“拿来主义”]
展开