使用React server-side render致使整个node服务QPS上不去
发布于 7 年前 作者 yansong 4495 次浏览 来自 问答

下面是我简短的代码描述:

let store = await getStore(); // http.get(xxx)
let content = renderToString(React.createElement(Component, store));
ctx.render(tpl, {
  Content: content,
  Store: store
});

使用这段代码QPS一直在200以下。 但是删除renderToString这行代码QPS能到快600.

然后,我在renderToString的前后,记录了执行事件,得到的结果是不超过10ms。也就是可以忽略不计。

表现的结果就是,加renderToString会导致getStore()这个接口请求变得非常慢。

最后,求解救!谢谢~

6 回复

说明一下,

  1. react目前用的是0.14.8,尝试过使用15.6.0。问题依旧。
  2. CPU肯定是100%
  3. 内存的话,使用renderToString,使用率反而不高。
  4. 网络的话,使用renderToString, 出口带宽使用率反而更低。

问题找到了,关闭

@yansong 是什么问题可以分享一下吗,最近也在学serverrender

@lzszone 然后,我在renderToString的前后,记录了执行事件,得到的结果是不超过10ms。 就这句话上。

@yansong 啊?是不是有漏掉内容

来自酷炫的 CNodeMD

@lzszone 1000/10 === 100 所以单核QPS不可能上得去,瓶颈就是React渲染。

回到顶部