Deno Land 近日發布了 Deno 2.9,這是該公司 JavaScript/TypeScript/WebAssembly 運行時的最新版本更新,核心亮點是新增了 deno desktop 功能,開發者可直接利用已熟悉的 Web 技術棧構建原生桌面應用程式。
Deno 2.9 於 6 月 25 日正式推出,同時在啟動時間、內存占用及 HTTP 吞吐量方面均有所改善。安裝說明可在 docs.deno.com 查閱。
deno desktop 功能詳解
通過 Deno 2.9,用戶可以將 deno desktop 指向某個腳本或 Web 框架項目,從而生成一個原生且獨立的桌面應用程式。該應用的 UI 層在 WebView 中運行,邏輯層則在 Deno 中執行。由於 deno desktop 基於與 deno compile 相同的底層機制構建,最終輸出的是一個包含代碼與資源文件的單一可分發二進制文件。
啟動速度大幅提升
在 Deno 2.9 中,一個 hello-world 程序的冷啟動時間約為 2.8 版本的一半,從 34 毫秒縮短至 17 毫秒。這一提升源於多方面的優化措施,包括:延遲加載 node: 全局變量以減少快照體積、將 Node 引導程序限制在 Node Worker 中按需執行、為剩餘延遲加載的 ESM 模組啟用 V8 代碼緩存,以及對快照進行壓縮精簡。
內存占用顯著降低
Deno 2.9 在內存使用方面也帶來了明顯改善,尤其是高負載場景下的內存表現。在 Deno 2.8 中,常駐集大小會隨工作負載增長,從服務純文本時的約 94MB 增長至流式傳輸 1MiB 內容時的 197MB;而在 Deno 2.9 中,無論伺服器執行何種操作,內存占用基本保持平穩,約為 62MB。這意味著在實際工作負載場景下,峰值內存占用降低了 2.2 倍,在 1MiB 內容場景下更降低了 3.1 倍。因此,同一台伺服器在達到資源上限之前,可以運行更多並發的 Deno.serve 實例。
HTTP 吞吐量全面提升
Deno 2.9 的 HTTP 吞吐量同樣有所增強,Deno.serve 在各項場景下的性能均得到提升。其中,實際工作負載場景提升約 1.27 倍,純文本場景提升 1.11 倍,1MiB 內容場景提升 1.18 倍。這些改進主要得益於新引入的 Deno 自有 HTTP/1.1 服務路徑。
Node.js 兼容性升級
此外,Deno 2.9 將 Node.js 兼容性目標提升至 Node.js 26,版本號隨之更新,所使用的 node-compat 測試套件也同步升級至 26.3.0 版本。
Q&A
Q1:Deno 2.9 的 deno desktop 功能是什麼?它能用來做什麼?
A:deno desktop 是 Deno 2.9 新增的功能,允許開發者直接使用熟悉的 Web 技術棧(如 JavaScript/TypeScript)來構建原生桌面應用程式。應用的 UI 層在 WebView 中渲染,邏輯層在 Deno 中運行,最終生成一個包含所有代碼和資源的單一可分發二進制文件,無需額外依賴。
Q2:Deno 2.9 相比 Deno 2.8 啟動速度快了多少?
A:Deno 2.9 的冷啟動速度大約是 Deno 2.8 的兩倍。以 hello-world 程序為例,啟動時間從 2.8 版本的 34 毫秒縮短至 17 毫秒。這一改進來自多項優化,包括延遲加載全局變量、V8 代碼緩存以及對運行時快照進行壓縮精簡等。
Q3:Deno 2.9 在內存使用上有哪些改進?
A:Deno 2.9 在高負載場景下的內存占用大幅降低。相比 Deno 2.8 內存會隨負載增長(最高達 197MB),Deno 2.9 無論在何種工作負載下內存始終維持在約 62MB 左右。在實際場景中,峰值內存降低了 2.2 倍,在 1MiB 內容傳輸場景中更降低了 3.1 倍,同一台機器可運行更多並發服務實例。






