提升 Java API 接口性能,通常可以从代码层面、JVM、框架配置、数据库、缓存、架构设计等多个维度入手。下面按实用优先级给你一个系统性的优化清单。
StringBuilder 代替字符串拼接ThreadLocal、ByteBuffer)// 不推荐
for (int i = 0; i < list.size(); i++) {
String s = new String("abc");
}
// 推荐
StringBuilder sb = new StringBuilder();
List<User> list = new ArrayList<>(1000);
synchronized 使用范围ConcurrentHashMap 替代 Hashtablesynchronized 方法CompletableFutureCompletableFuture.runAsync(() -> sendLog());
SELECT *LIKE '%xx%'-- 不推荐
SELECT * FROM user;
-- 推荐
SELECT id, name FROM user WHERE status = 1;
JdbcTemplate.batchUpdate 或 MyBatis foreachspring:
datasource:
hikari:
maximum-pool-size: 20
minimum-idle: 5
Caffeine(推荐)Cache<String, Object> cache = Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
server:
compression:
enabled: true
@Bean
public Executor taskExecutor() {
return new ThreadPoolTaskExecutor();
}
-Xms2g -Xmx2g
-XX:+UseG1GC
✅ 第一步:SQL + 索引
✅ 第二步:加缓存
✅ 第三步:异步 & 线程池
✅ 第四步:JVM & 连接池
✅ 第五步:架构拆分
如果你愿意,可以告诉我:
我可以给你针对性的优化方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。