每 12 分鐘 OOM 一次:一個 id 屬性就讓 jsdom 留住整份文件
SSR 服務三小時掛了 75 次。原因是 jsdom 27 到 30.0.1 從常駐的 Window 解析出來的文件,只要含一個 id 屬性,整份文件就會一直留在記憶體裡,40 KB 的 HTML 留下 2.7 MB。30.1.0 已修好,附可執行重現與跨版本數字。
ALEX YU · 前端工程師
專注於程式開發、技術學習與個人成長。分享軟體工程師的日常與思考。
SSR 服務三小時掛了 75 次。原因是 jsdom 27 到 30.0.1 從常駐的 Window 解析出來的文件,只要含一個 id 屬性,整份文件就會一直留在記憶體裡,40 KB 的 HTML 留下 2.7 MB。30.1.0 已修好,附可執行重現與跨版本數字。
同一個 Next.js 版本、同一份 benchmark,兩輪平均回應差了六倍。整理那幾份效能比較各自測了什麼,以及我們把 INP 修完,實驗室少了八成、真人沒有變快的那一次。
有獨立後端的內容網站用 Next.js,很多功能根本用不到。但有些行為關不掉,廣告曝光和 PV 的做法也得跟著改。記錄我在一個接手的 App Router 專案上看到的取捨。