1

首先我写了简单的spring REST控制器

 @RequestMapping(value = "/id", method = RequestMethod.GET)
    public String getDetails(@PathVariable("id") String id) {
       // wrote logic for JSON response....
}

其次,我们需要提高性能,所以我像这样使用 Callable 编写控制器

@RequestMapping(value = "/id", method = RequestMethod.GET)
        public String getDetails(@PathVariable("id") String id) {
          return new Callable<String>(){
          @Override
          public String call() throws Exception {
           // ...
          return "someJSONString";
         }
       }
    }

现在的问题是,当我使用 JMETER 比较上述两种方法的性能时,我没有看到任何重大差异。

那么在编写 Callable 控制器时我会错过什么吗?

4

1 回答 1

0

使用 Callable 接口并不能提高单个请求的性能,在某些情况下它有助于接收更多请求。如果您的响应类型为 void,您可以使用 runnable 而不是 callable,因此使用 runnable 可以提高单个请求的响应时间。例如,如果您的服务适合 fork/join 框架,请尝试一下。

于 2016-08-30T09:02:47.927 回答