【实战经验话题】 在项目里,你遇过的那些性能瓶颈与解决方案(近期感慨+搜集)。
学生党因为没有工作经验的原因,真正进入工作并接受项目,会发现理论知识不够用了,很多问题是自己根本没碰过或者完全不知道的,尤其凸显为对计算机,操作系统,硬件,程序的基础概念缺失或者不能实际应用。
这一点在程序性能方面尤为突出,举个例子: 论坛里很多同学, 平时看书学会了STL觉得很碉堡,实际上STL只是一个通用的高效解决方案而已,真实的项目往往因为STL而拖了后腿,因为不同的业务可以做出针对性的优化,而不是一个STL万岁。
说STL可能大家没有实际体会,因为你并不一定质疑过它。 近两天在论坛里看到过这样的帖子, 大致就是想问:“多线程写磁盘怎么样才快?”。 以前的我可能认为,多线程肯定比单线程快, 也会怀疑多线程寻道会很繁忙会不会不太好, 学习认真的同学还会知道4KB写磁盘是速度最快的理论值, 但自己仍然是拿不准主意的,因为从来没有经历过,除非你做过试验。
发这个贴,一方面要告诉大家,尤其是还没有参与到工作中或者工作还没起步的同学,注意开发基本功的积累与尝试,注意对操作系统,硬件,程序三者在性能方面的关系,积极的探索与实验。 另一方面,也希望有类似经验的同学跟帖,互相学习,因为实战经验是很重要的,提前接触过可以避免踩坑。
什么是好程序? 能够通过把硬件性能榨干以便提升程序自身性能的程序才是好程序。