Performance 如何提高并发请求的React.Net/SuperboardReact服务器端呈现性能?
我正在使用React.NET和SuperboardReact实现在ASP.NET网站中对React组件进行服务器端呈现试验 我的初始负载测试结果表明,单个请求可以合理地快速处理(大约100毫秒),但在并发请求(>4秒)下,性能会迅速下降。详情如下 可能我没有充分利用这些工具的潜力,测试也很粗略,但我需要一些关于从何处开始改进性能的建议 问题Performance 如何提高并发请求的React.Net/SuperboardReact服务器端呈现性能?,performance,clearscript,Performance,Clearscript,我正在使用React.NET和SuperboardReact实现在ASP.NET网站中对React组件进行服务器端呈现试验 我的初始负载测试结果表明,单个请求可以合理地快速处理(大约100毫秒),但在并发请求(>4秒)下,性能会迅速下降。详情如下 可能我没有充分利用这些工具的潜力,测试也很粗略,但我需要一些关于从何处开始改进性能的建议 问题 我应该期望大致达到什么级别的并发性?例如,并发性仅限于我可以在内存中保存的javascript引擎实例的数量。或者它取决于IIS工作进程的数量。或者别的什么
req/min | avg ms | min ms | max ms
100 | 138 | 90 | 1,161
500 | 256 | 4 | 2,049
1000 | 566 | 31 | 4,969
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
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
增压反应的结果
10线程
req/min | avg ms | min ms | max ms
100 | 138 | 90 | 1,161
500 | 256 | 4 | 2,049
1000 | 566 | 31 | 4,969
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
我在这一点上停止了测试SuperhageDreact,因为它看起来比React.Net差得多。这有助于我们:
ReactSiteConfiguration.Configuration.AllowMsieEngine = false;
ReactSiteConfiguration.Configuration.ReuseJavaScriptEngines = false;
- 强制使用V8而不是IE的Javascript引擎。如果不安装VC++2013运行时,有时V8可能会自动加载失败
- 禁用JS引擎池,我们发现它有缺陷
- 我们有传统的Razor视图,所以我们只在需要呈现React组件的页面上调用.ReactWithInit。这允许我们避免在每个页面上调用.ReactInitJavascript,这大大减少了JS引擎的工作负载