这么多年来一直在做一件事:优化系统的运行效率。这么多年也没用什么大招,大部分问题就是小朋友们的不良习惯,如果开发时就注意这些,运行效率就会好很多。
1、数据库加索引 尤其是表关联时,涉及的字段务必有索引。
现代的编程不太关注数据库层面了,过去的触发器、存储过程、自定义函数渐渐的不流行了,但是索引万万得关注,那效果是钢钢地。
2、能干一次的绝不干第二次。
这个问题最普遍。循环内只保留不得不做的事,和循环无关的放到循环外面去。
3、能批量干的,一次性干的要一次型干完。
举个典型场景:代码翻译。要一次性从数据库取回代码转为hash表(平台中实质上从redis中取,那也是一次性取回所有相关代码),翻译时取hash值,绝不能每次从库查一次代码。
4、写文件要在内存拼接好,一次性写入。
内存已经不是什么关键资源了,多用点内存不用心疼和不好意思。
5、复杂逻辑在服务端完成。
前后端分离架构下,很多工作如数据格式转换即可以在浏览器端完成也可以在后端微服务里完成,一般情况下选择在服务端完成。服务器运行要优于客户端(另一个原因就是java处理数据比javascript方便)
6、减少数据交互数量
要减少前后端交互的次数,减少数据传输量。
另外就是伪方法,这些方法没有本质上提高性能,但是抚慰了使用人员的心灵:
1、耗时长的要有进度条。
2、能分页加载显示的就分页。
3、使用缩略图代替源头。