Java 为什么在相同URL查询的情况下,RESTfulWeb服务在1秒后按顺序调用时的执行时间会减少?

Java 为什么在相同URL查询的情况下,RESTfulWeb服务在1秒后按顺序调用时的执行时间会减少?,java,web-services,rest,tomcat8,Java,Web Services,Rest,Tomcat8,我已经在应用服务器TomcatV8.0上使用Jersy创建了一个RESTfulWeb服务,并且每隔1秒调用一次web服务 以下是我的restful web服务:- @Path("/db") public class UserLoginDBRst2 { DBConnection2 dbCoN; Connection conn; ResultSet rslt; String Iuser="Invalid User"; public static double visitplace2; @Path(

我已经在应用服务器TomcatV8.0上使用Jersy创建了一个RESTfulWeb服务,并且每隔1秒调用一次web服务

以下是我的restful web服务:-

@Path("/db")
public class UserLoginDBRst2 
{
DBConnection2 dbCoN;
Connection conn;
ResultSet rslt;
String Iuser="Invalid User";
public static double visitplace2;
@Path("/{latitude}/{longitude}")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String LogicUserValidation(@PathParam ("latitude")String lat,@PathParam ("longitude")String longt) throws SQLException 
{
    long startTime = System.nanoTime();
    visitplace2=visitplace2+1;
    String lLoginQuery="Select * from place_giver_table where latitude="+ lat + " and longitude="+longt;

    dbCoN=new DBConnection2();

    try{
        conn=DBConnection2.setDBConnection();
        rslt=dbCoN.getResultSet(lLoginQuery,conn);

        if(rslt.next())
        {
            String name=rslt.getString(4);

            long stopTime = System.nanoTime();
            System.out.println(stopTime - startTime);
            return  name + visitplace2;
        }
        else
        {

            long stopTime = System.nanoTime();
            System.out.println(stopTime - startTime);
            return Iuser + visitplace2;
        }
    }
    catch(Exception e)
    {
        System.out.println(e);
    }
    finally
    {
        if(conn!=null)
        {

            conn.close();
        }

    }

    long stopTime = System.nanoTime();
    System.out.println(stopTime - startTime);
    return Iuser + visitplace2;
    }
}
响应时间日志:-

0.221560417
0.017982066
0.017500935
0.024799183
0.016682356
0.020753906
.
.
.
.
0.005201366
0.005475563
0.005381554
0.005084748
0.005325283
0.005599511
我想缓存内存存储了一些值,可能有问题 在使用相同的url一次又一次地调用之后,我也附加了context.xml

下面是META-INF\context.xml:-

<Context antiResourceLocking="false" privileged="true" >
</Context>

希望能在这方面得到帮助


提前谢谢

很抱歉给您添麻烦,我同意Dirk Lachowski的观点,即由于缓存的原因,时间在减少,因为web服务正在预热,所以只有建议读取数据。

至少响应时间的第一次下降应该来自数据库的缓存预热。这与tomcat和webservice无关。因此,如何删除db的缓存,总之,我不需要缓存,因为我正在做的是在应用服务器上测试web服务?这取决于您的db,我怀疑这是否可能。但是,如果您正在测试您的服务:为什么不直接模拟db?不,我不能模拟db,因为我想要执行时间,包括每次调用web服务时从db获取数据。对不起,这有点奇怪:在生产中,您应该始终对缓存进行预热,那么您希望测试/测量预热阶段的原因是什么?如果您真的想这样做,那么我能看到的唯一可能性就是在每次测试之前重新启动db。你能提供更多关于你的用例的信息吗?