Java CPU占用过高

0

今天发现一个奇怪的问题,发现运行一个Java程序时CPU占用超过了50%。
在公司测试并没有这个问题,而且家里电脑配置比公司更好,理论上不应该出现这个问题。

后来发现这个问题的原因是没有配置JVM参数:-Xms128m -Xmx256m

暂时还不清楚原理,以后在研究。

问题找到了,并不是上面参数的问题,是由于Java11默认的HttpClient使用TLSv1.3的问题,修复代码:

public static final HttpClient newClient(int timeout) {
	return HttpClient
		.newBuilder()
		.executor(EXECUTOR) // 线程池
		.version(Version.HTTP_1_1)
		.followRedirects(Redirect.NORMAL) // 重定向:正常
		.sslParameters(newSSLParameters()) // SSL参数
		.connectTimeout(Duration.ofSeconds(timeout)) // 超时
		.build();
}

private static final SSLParameters newSSLParameters() {
	final var sslParameters = new SSLParameters();
	// 不使用TLSv1.3:CPU占用过高
	sslParameters.setProtocols(new String[] {"TLSv1.1", "TLSv1.2"});
	return sslParameters;
}