最近对一些压测性能不过关的接口进行优化,总结出一些优化思路
1: 我们都知道程序与数据库建立链接,销毁都是耗资源的,因此能一次查询出来的数据就不要分两次查询,而且用框架的封装好的基本查询有时并不合适,因为框架封装的查询都是查询表所有字段的,但是往往我们不需要所有字段,例如下面这个代码,先根据代码查出表的所有字段再过滤出id,再根据id去查记录,可以合并成一次查询
优化前:
优化后:
2:利用多线程能力,能并行执行的业务逻辑就并行,例如下面这个查询,设置一些没有上下文依赖的字段值时,是可以并行执行的
优化前:
优化后:
3:例如生成渲染vr文件内容,也可以用多线程能力提高效率
优化前:
优化后:
4:不要在循环里new对象
优化前:
优化后:
5:变量在多个地方使用应先获取出来,不要重复获取
优化前:
优化后:
6:循环操作数据库是大忌
优化前:
应该使用批量操作sql: