首先我写了一个简单的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控制器时,我是否会遗漏任何内容?
答案 0 :(得分:0)
使用Callable接口无法提高单个请求性能,在某些情况下有助于获取更多请求。如果您的响应类型无效,则可以使用runnable而不是callable,因此使用runnable可以改善单个请求响应时间。例如,如果您的服务适合fork / join框架,请尝试使用它。