nextjs16 的 cache component 有点打碎我对 node 服务小而美的印象

查看 52|回复 7
作者:bbbblue   
之前有个 nextjs 搭的网站,自己 docker 部署的,博客部分之前是 force-static 让 CDN 缓存的,也就几十篇,不多。
看到 nextjs16 的cache component,感觉不错就把 force-static 去了(毕竟和 cache component 不兼容),页面上加了个use cache,丢上去看到博客的 cache-control 头有 swr ,刷新下 cf-cache 也 hit ,那没啥问题,先这样吧。
这个服务本来内存占用在 100M 左右,符合我对 node 的小而美的感觉,然后看旁边的 java 服务,300M ,emmm ,升级 jdk 版本到 21 之后的确小了点,但和 node 比还差一点😂。
前几天上去看了一眼.... 沃日,600M 了。。。。 。。。。开了cache component,特么 600M 了?????
然后看到 nextjs 16.0.3 版本更新修复了一个小的内存泄露,在想,果然是泄露了,怎么可能 600M 嘛。
升级打包重新部署,第二天一看 400M???
突然感觉旁边的 java 服务也眉清目秀了起来。
关掉了 cache component ,去掉use cache,跑了几天观察都在 100 多 M 左右。
一个主要是博客的服务能跑到 600M ,这还是 node 嘛。坑爹啊。
(不过这主要是 nextjs 的问题,和 node 关系不大...

cache, component, memory, leak

zhixiao   
nextjs 只适合配合 vercel 使用,再说宽泛点,现在整个 react 的开发都有点被 vercel 绑架了
bbbblue
OP
  
@zhixiao 是的呢,nextjs 那一坨缓存在 vercel 里不少应该是在 edge 的,自己部署就全堆服务器上了。😂😂😂😂 不过就几十个博客页面,开这个 cache 内存涨了 500M ,也是亮瞎我的眼了。
Ketteiron   
再说宽泛点,半个 typescript 的开发都被 vercel 绑架了,除非不用 turborepo 之类的工具
vercel 的成功之道就在于锁定用户,作为他们的用户,零配置零折腾就能成功运行,随之而来的代价就是便利性锁定
bgm004   
博客部分没必要使用 cache component 吧。即使是通过 cms 更新内容也用不上,刷新请求的缓存的就好了。
bbbblue
OP
  
@bgm004 博客放数据库里的。其实就是想试试 还有就是开启 cache component 之后 dynamic force-static 参数没法用了。
此外,我发现博客部分用 generateStaticParams SSG 之后也会增加 100-200M+的内存,很迷。。。
hronro   
内存占用小就是小而美的话,我用 Rust 写个博客大概只占用几 MB 的内存呢。
dassh   
这么那怕,那想知道开启 cache 的 next.js 16 在 cf workers 能跑起来吗
参见 cf 文档 https://developers.cloudflare.com/workers/platform/limits/#memory ,限制了 128mb
您需要登录后才可以回帖 登录 | 立即注册

返回顶部