网站访问慢,如何优化?
1.建立健全监控机制,使用合适的工具来进行问题的排查和定位,找出具体是什么步骤慢,是数据库访问慢,还是代码本身慢?
2.如果是数据库访问慢,进行数据库相关优化
3.如果是代码本身慢,分以下几种情况:
1)锁开销过大,进行锁优化
2)线程开销过大,进行线程池优化
线程池实现方式:
1.ThreadPoolExecutor,七种参数的含义:核心线程数,最大线程数,空闲时间,时间单位,线程工厂,任务队列,拒绝策略。两个常用api,execute和submit(区别,submit可以返回结果)
2.ScheduledThreadPoolExecutor
3.executors
3)代码过于冗长,进行异步优化,把执行时间过长且不影响主流程的代码逻辑进行异步执行,从而提高主流程代码执行效率
实现方式:
1.创建线程
2.线程池
3.async注解,底层基于线程池(注意要在启动类上加上@EnabelAsync注解)
4.消息队列