性能优化是程序员的G点,一碰就会高潮!(小朋友不懂的不不要懂了)
但是我为啥这么晚才抛出这个命题,其实有人早就急不可待吧。我这么晚写是有这么晚写的理由的,其实性能优化,在做一个小的网站,根本没有什么卵用。一个流量小的网站,框架做好,架构做好,表结构设计好,根本没有太大的必要去优化,因为机器都闲着没有什么卵用,有时间不如把产品做好,吸引更多的人气。
其实我在到阿里之前,做过几个网站,而且也提了很高的要求,比如 用户一次请求,服务器端必须在100ms内返回结果。也做了一些性能优化,但是在寥寥无几的用户面前,这纯粹是浪费时间。但是到了阿里就不同了,阿里很注重性能优化,注重稳定,注重底层的参数设定。为啥?流量大了,你优化1%都会节省大批的机器,这都money。说个笑话,之前和同事一起优化了一个mr,算下来每天能节省70万,要是这个钱发给我,那就happy了。
过早优化是万恶之源,永远不要过早的去优化,去过度设计。当然不是说基本的代码规范不要了,有最佳实践当然按照最佳实践进行编码。过早优化是指的去做代码结构和一些主要逻辑的优化,这些没有必要过早去实施,真正发现瓶颈再去优化。
而且优化时不要想当然的去优化,一切要以测试为准。我经历过很多次代码优化,有时候很多代码改动,并不能带来性能的提升,反而增加了代码复杂度。印象最深的一次是优化了很多代码,都没有很大的效果,结果调整了一下jvm的参数,性能提升20%,所以一切过早的优化都是扯淡。还没有上线,没有测试的依据就进行优化,80%都是徒劳。