我正在尝试使用 React.Net 和 SuperchargedReact 实现从 ASP.NET 网站内对 React 组件进行服务器端渲染。
我的初始负载测试结果表明,可以相当快地处理单个请求(大约 100 毫秒),但在并发请求(> 4 秒)下性能会迅速下降。详情如下。
可能我没有充分利用这些工具的潜力,并且测试很粗略,但我需要一些关于从哪里开始提高性能的建议。
问题
我应该大致期望什么级别的并发?例如,并发性是否仅限于我可以在内存中保存的 javascript 引擎实例的数量。还是取决于 IIS 工作进程的数量。或者是其他东西。
我应该从哪里开始寻求提高性能 - 提示?技巧?资源?
当 SuperchargedReact 据称实现了许多性能改进时,什么可以解释其性能不如 React.Net。
测试细节
我通过 browserify/babelify/gulp-minify 从 ES6 源代码构建了一个 js 包。然后反应组件通过全局变量暴露出来。不包括 react-router,并且对 SuperchargedReact 进行了一些小的修改,以使其在没有路由器的情况下工作。
我从另一台服务器上的 JMeter 请求了一个大约 5kb 的服务器端渲染页面,具有不同的线程数和每分钟请求限制。
React.Net 的结果
10 个线程
req/min | avg ms | min ms | max ms
100 | 138 | 90 | 1,161
500 | 256 | 4 | 2,049
1000 | 566 | 31 | 4,969
20 个线程
req/min | avg ms | min ms | max ms
100 | 284 | 88 | 1,964
500 | 432 | 52 | 3,649
1000 | 1,557 | 75 | 4,405
50 个线程
req/min | avg ms | min ms | max ms
100 | 1,393 | 91 | 4,693
500 | 1,723 | 19 | 10,523
1000 | 4,418 | 97 | 32,769
SuperchargedReact 的结果
10 个线程
req/min | avg ms | min ms | max ms
100 | 763 | 7 | 2,194
500 | 2,149 | 263 | 5,160
1000 | 2,270 | 149 | 4,865
我现在停止测试 SuperchagedReact,因为它看起来比 React.Net 差得多