我这边刚好有一个Web框架性能测试项目的代码, 其中有一些常见的Java MVC框架,包括Springboot, JFinal, NinjaFramework等, 我在代码中添加了
new RuntimeException...().printStackTrace();
用来打印调用到应用逻辑(控制器)的调用栈.下面是我的测试结果:
ActFramework
java.lang.RuntimeException
at benchmark.ActBenchmark.jsonSerialization...org.xnio.nio.WorkerThread.run(WorkerThread.java:464)
放置这个比较是鉴于有同仁质疑Act的对比不公平, 原因是所谓Act在调用业务方法的时候new了一个...Undertow正确的使用方式是将业务逻辑,特别是有block io(比如数据访问或者文件访问)的情况下,分派到worker thread....在下面springboot-undertow的测试中, 也可以看到Springboot是分派到了undertow的worker thread, 一个很明显的标志是在其堆栈上看不到org.xnio的类.