下一页 .js 大页面性能不佳(请求/秒)

Next.js poor performance (request/second) for large page

提问人:Marek 提问时间:11/17/2023 更新时间:11/17/2023 访问量:21

问:

我的目标是将特定的服务从旧技术(Java + tomcat + jsp)转移到下一个.js。

要求:

  • 页面必须生成为 SSR(每个用户看到不同的数据)

  • 页面很大(超过 800kB,超过 2000 个 DOM 元素)

  • 我不能使用延迟加载 - 所有内容必须一次提供(SEO 部门要求)

我有一个使用 Next.js 13.5.5、节点 18.16.1 的应用程序。

页面生成如下所示:

  • 我调用一个后端端点(仅用于测试,它返回静态数据 - 响应时间< 30 毫秒)

  • 根据这些数据,我生成了 ~2000 个 div(每个 div 都有图像<img>和标题 <p>

  • 这就是我代码中的所有内容

我使用 fasthttploader 对我的应用程序进行基准测试。

当我使用 10 个客户端和每秒 10 个请求运行它时,我得到的结果非常弱(~1,5 - 2 秒)。

nextjs 10 req/sec

tomcat 上的相同分页服务器 - 30 req/sec(3 倍以上!)我得到的结果非常好(~ 0,10 - 0,20 秒)。enter image description here

老实说,我对next.js的期望更高。

在过去的 3 天里,我一直在研究它 - 尝试不同的 next.js 版本、不同的 node.js 版本等,但没有成功。

我唯一注意到的是:对于使用 <ing> > 的 1000 张图像,next/Image 实例的性能明显提高,但对于这种特定情况,我仍然遇到了 10 个请求。

我还在我的应用程序中使用了 opentelemetry,在 localhost 上运行,当我调用我的页面时(没有压力 - 测试 - 只是来自我的机器的一个请求),响应时间约为 200-400 毫秒。

在JaegerUI中,我看不到太多:静态端点响应<5ms,在渲染路由(应用程序)上花费了相当多的时间。

enter image description here

我错过了什么吗?我可以在节点或下一个.js中调整一些东西吗?

Mayby next.js 不是为不能用作 SSG 的大页面设计的吗?

任何建议都会对我有很大帮助并节省我的一天。

性能 下一个.js 下一个.js13 瓶颈

评论

0赞 Fabio Nettis 11/17/2023
您是否在生产版本上测试过?在我看来,您正在尝试对开发服务器进行基准测试。我们有一个网页商店,有 130'000 多个页面,完全是 SSR,我们的页面速度洞察力从未如此出色。
0赞 Marek 11/19/2023
我在生产版本上进行了测试。我的结论是,对于相对较小的页面,SSR 中的 next.js 性能非常好,当页面很大时会出现问题,大约有 2000 个元素 - 在这种情况下,在非常小的负载(10 请求/秒)下响应时间是无法接受的。
0赞 Fabio Nettis 11/20/2023
我再次发现这不太可能。查看这些展示柜。如果问题仍然存在,我强烈建议您在 Github 上提出问题。StackOverflow 似乎不是解决您的问题的最佳位置,因为这里没有真正的问题。

答: 暂无答案