小编Geo*_*one的帖子

为什么Spring MVC json序列化比手动调用jackson慢10倍?

使用带有"ab -k -c 50 -n 1000000"选项的apachebench(50个并发线程)显示以下两种方法(手动和弹簧管理的序列化)之间的性能差异为10倍.是否可以通过配置Spring序列化来实现相同的性能?

我在Windows 7,JDK8,i7-6700上运行测试.嵌入式Tomcat,与UndertowJetty类似的结果.类似的WildFly 10 JAX-RS示例应用程序性能产生与手动弹簧类似的结果,因此我认为没有理由为什么Spring自动模式应该如此慢.

完整源代码:

@SpringBootApplication
@Controller
public class DemoApplication {

  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }

  ObjectMapper mapper = new ObjectMapper(new JsonFactory());

  @RequestMapping(value = "/auto", produces = "application/json; charset=utf-8")
  @ResponseBody
  public Lol automaticSerialization() {

    Lol lol = new Lol();
    lol.a = UUID.randomUUID().toString();
    lol.b = System.currentTimeMillis();

    return lol;
  }

  @RequestMapping(value = "/manual", produces = "application/json; charset=utf-8")
  @ResponseBody
  public String manualSerialization() throws JsonProcessingException { …
Run Code Online (Sandbox Code Playgroud)

performance spring spring-mvc jackson

8
推荐指数
1
解决办法
2942
查看次数

标签 统计

jackson ×1

performance ×1

spring ×1

spring-mvc ×1