Tomcat上的CPU内核与响应时间

Tomcat上的CPU内核与响应时间,tomcat,servlets,jmeter,Tomcat,Servlets,Jmeter,使用运行Java 8的Tomcat 8上的以下简单servlet 3 servlet: import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet; import jav

使用运行Java 8的Tomcat 8上的以下简单servlet 3 servlet:

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;

import java.io.IOException;

@WebServlet(value="/min", name="helloServlet")
public class HelloServlet extends GenericServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        double j = 0;
        for (int i=0 ; i<99999 ; i++) {
            j += Math.random();
        }       
        res.getWriter().println("Hello world!!" + j);
    }
}
import javax.servlet.GenericServlet;
导入javax.servlet.ServletException;
导入javax.servlet.ServletRequest;
导入javax.servlet.ServletResponse;
导入javax.servlet.annotation.WebServlet;
导入java.io.IOException;
@WebServlet(value=“/min”,name=“helloServlet”)
公共类HelloServlet扩展了GenericServlet{
@凌驾
公共无效服务(ServletRequest-req、ServletResponse-res)抛出ServletException、IOException{
双j=0;

对于(int i=0;i这是因为您使用的是Math.random(),请尝试使用ThreadLocalRandom


您提出了多少个请求。我的意思是,当您说中间值是多少时,1个和2个用户可能有多个问题,可能有任何主要的gc(垃圾收集器)在tomcat服务器中启动。如果有3个和4个用户,您可能已经创建了足够多的对象,gc可能会启动这些对象,这会导致延迟。我建议使用Flight Recorder()运行此测试。它将准确地告诉您时间过去了(例如锁、线程争用、磁盘写入效率低下等).五分钟的飞行记录通常就足够了