
之前有个 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 关系不大...
1 zhixiao 12 小时 38 分钟前 nextjs 只适合配合 vercel 使用,再说宽泛点,现在整个 react 的开发都有点被 vercel 绑架了 |
2 bbbblue OP @zhixiao 是的呢,nextjs 那一坨缓存在 vercel 里不少应该是在 edge 的,自己部署就全堆服务器上了。 不过就几十个博客页面,开这个 cache 内存涨了 500M ,也是亮瞎我的眼了。 |
3 Ketteiron 12 小时 20 分钟前 再说宽泛点,半个 typescript 的开发都被 vercel 绑架了,除非不用 turborepo 之类的工具 vercel 的成功之道就在于锁定用户,作为他们的用户,零配置零折腾就能成功运行,随之而来的代价就是便利性锁定 |
4 bgm004 12 小时 1 分钟前 博客部分没必要使用 cache component 吧。即使是通过 cms 更新内容也用不上,刷新请求的缓存的就好了。 |
5 bbbblue OP @bgm004 博客放数据库里的。其实就是想试试 还有就是开启 cache component 之后 dynamic force-static 参数没法用了。 此外,我发现博客部分用 generateStaticParams SSG 之后也会增加 100-200M+的内存,很迷。。。 |
6 hronro 11 小时 45 分钟前 |
7 dassh 11 小时 20 分钟前 这么那怕,那想知道开启 cache 的 next.js 16 在 cf workers 能跑起来吗 参见 cf 文档 https://developers.cloudflare.com/workers/platform/limits/#memory ,限制了 128mb |
8 FlashEcho 10 小时 20 分钟前 nextjs 这一套前端生态最好配合 serverless 基建,用 serverless 就没这么多问题了 |