4.3
一、后端性能优化
- 数据库优化
索引优化:为高频查询字段添加索引
sql
CREATE INDEX idx_user_username ON tb_user(username);
分页查询:避免一次性查询大量数据
java
// Spring Data JPA分页查询
Pageable pageable = PageRequest.of(page, size, Sort.by("createTime").descending());
Page
- 缓存机制
集成 Redis:
xml
org.springframework.boot
spring-boot-starter-data-redis
java
@Cacheable(value = "userCache", key = "#id")
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
- 异步处理
使用 @Async 注解实现异步方法
java
@Service
public class EmailService {
@Async
public void sendVerificationEmail(String email, String content) {
// 异步发送邮件,不阻塞主线程
}
}
二、Android 端性能优化
- 布局优化
使用 ConstraintLayout 替代嵌套 LinearLayout
移除冗余布局层级,使用标签合并
使用 ViewStub 延迟加载非必须布局 - 图片加载优化
使用 Glide 加载图片并设置缓存策略
java
Glide.with(context)
.load(imageUrl)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
图片按需加载,列表滑动时暂停加载
3. 网络优化
合并网络请求,减少 HTTP 连接数
java
// 使用CompositeDisposable合并多个请求
CompositeDisposable compositeDisposable = new CompositeDisposable();
compositeDisposable.add(apiService.getUserInfo().subscribe(...));
compositeDisposable.add(apiService.getOrderList().subscribe(...));
数据压缩传输,后端返回 Gzip 格式响应
三、全链路性能监控
- 后端监控(Spring Boot Actuator)
添加依赖:
xml
org.springframework.boot
spring-boot-starter-actuator
配置暴露监控端点:
properties
management.endpoints.web.exposure.include=*
- Android 端监控
使用 LeakCanary 检测内存泄漏
通过 StrictMode 检测主线程耗时操作
java
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());
四、性能测试工具
后端压力测试:
JMeter:模拟大量并发请求测试接口性能
Android 性能分析:
Android Profiler:监控 CPU、内存、网络使用情况
全链路追踪:
Skywalking/Elastic APM:追踪请求在前后端的耗时分布

浙公网安备 33010602011771号