1. 不要循环查询数据库(db), 可以查询一次全部的数据 在进行处理, 或写对应的sql语句解决; (避免多次没必要的I/O操作)
2. 如果一个 查询多 且 不经常发生变化 (读多,写少) 和 一致性要求不高(就是在短时间内不需要准确的数据) 的 数据,可以使用缓存; 《合理的使用缓存,对程序的效率提升很大》
3. 在开发阶段可以开启高级别的日志,但在发布阶段就是用对应的简单的日志;
4. nginx负责来返回前端的一些静态页面(这个是几乎只消耗CPU) ,tomcat就负责返回数据和处理数据; 分工处理 (主要是不要把压力给到一个人处理, 性能也会有一定的提升) (数据处理消耗CPU, 与数据库交互或IO操作消耗线程数)
5. 按照对应的服务进行压力测试,使用工具查看对应的 堆空间GC的频率和CPU的使用情况等等,来做适当的修改对应的堆大小和代码 或 修改GC垃圾回收器;
6. 在使用锁的时候,(尽量)保证锁的粒度细: 如 每个商品都加一个对应属于自己的锁,当一个线程修改一个商品时,其他线程可以修改其他的商品 但不能修改正在修改的商品;
7. 在一个代码块中有几个没有关联的代码,这个时候可以使用多线程的方式并行处理;(使用线程池_避免每次使用都要创建) 、线程的数量根据cpu的核数 和 IO操作频率 来指定具体的数量;
8. 在不需要反馈结果的代码(最终一致性),可以通过mq来进行处理。提高用户的响应速度和在高并发的保护。
9. 使用中间件会降低程序的总体性能,所以合理使用中间件。(考虑程序的侧重点)