Univer Rust 公式引擎效能實測:百萬級公式,在伺服器執行

Univer Rust 公式引擎效能實測:10 份活頁簿涵蓋條件統計、跨表預算與預測模型,展示近 200 萬公式節點的伺服器運算表現,並提供 Excel、LibreOffice 對照結果與範例下載。

Univer Rust 公式引擎為 Univer Office SDK 提供伺服器端試算表運算能力,支援批次處理、報表產生與 Agent 自動化。試算表承載著預算、預測和業務規則;當公式規模增長到幾十萬、上百萬,運算能力也成為應用程式的重要基礎。

我們選取 10 份工作簿,覆蓋重複公式、條件統計、跨表預算和預測模型。其中三個結果,展示了這套引擎可以處理的業務規模:

  • 近 200 萬公式節點:12.29 秒完成原生載入與全量計算。
  • 54 張工作表的專案預算:1.27 秒。
  • 銷售 COUNTIFS 條件統計:3.54 秒。

10 份工作簿的實測表現

Rust 計入原生快照載入與全量計算,不含 XLSX 轉換;Excel、LibreOffice 計入原 XLSX 開啟與全量重算。

單位秒,越低越快;橫軸為對數刻度。

完整結果與樣張下載

點選樣張名稱,可下載原始 XLSX,檢視對應的業務模型。

範例Univer Rust 公式引擎
原生載入+計算(秒)
Excel
開啟+全量重算(秒)
LibreOffice
開啟+全量重算(秒)
五十萬公式3.542.3918.74
混合公式負載5.083.119.72
大型預測模型17.678.5512.86
大型業務分析12.2910.808.99
銷售條件計數(COUNTIFS)3.5419.47320.01
多工作表專案預算1.270.732.96
彙總公式0.271.033.10
巢狀 IF 與工作日計算1.653.482.21
CBAM 計算模型1.190.741.83
小型預測模型13.025.797.61

不同業務模型,不同計算特點

在這組負載中,Univer Rust 公式引擎在條件計數、彙總和工作日計算上表現突出。結果也說明,公式數量並非決定耗時的唯一因素,引用範圍、函式組合和依賴結構同樣重要。

在預測模型中,Excel 和 LibreOffice 完成得更快,這也是後續最佳化的方向。完整呈現這些結果,方便開發者根據自己的業務負載作出判斷。

把計算能力帶進你的 Office 應用

Univer Rust 公式引擎是 Office SDK 服務端計算流程的一部分。應用可以針對確定的內容版本計算,將結果隨 Snapshot 儲存;前端開啟時複用有效結果,並由前端公式引擎繼續響應使用者編輯。

基於同一內容執行時,開發者可以構建後臺報表、批次處理和 Agent 任務,讓計算結果自然進入後續業務流程。

瞭解無頭與服務端計算,或從 Office SDK 快速開始構建你的應用。

測試方法與樣張詳情

本次按各自輸入格式測量處理耗時:Rust 載入預轉換的原生引擎 JSON,Excel、LibreOffice 開啟 XLSX,包含樣式等文件處理。應用啟動、離線轉換和計時後的校驗不計入,不扣減開啟時間基線。

Rust 每份樣張預熱 1 次、正式測量 5 次,每輪使用獨立程序和新文件。Rust 結果取中位數。

Excel、LibreOffice 對照記錄的環境: Windows 11、Intel Core i7-13700H、約 32 GB 記憶體。Excel 為 16.0 build 20527.0,20 個計算執行緒;LibreOffice 為 26.8.1.1,啟用 CPU 多執行緒計算,未啟用 OpenCL 加速。本輪 Rust 使用 20 執行緒。

引擎計時範圍統計方式
Univer Rust 公式引擎同一連續秒錶:讀取原生快照檔案 → JSON 反序列化 → load_snapshot 載入 → 首次建依賴 → 強制全量公式計算 → 應用結果;不計離線 XLSX 轉換。每份預熱 1 次、正式測量 5 次,取中位數;每輪使用獨立程序和新文件,20 執行緒。
Excel COM從新開啟原檔案 Workbooks.Open 到 CalculateFullRebuild() 返回,包含顯式重建依賴與全量重算。每份預熱 1 次、正式測量 5 次,取中位數。
LibreOffice 無頭模式 / UNO從新開啟原 XLSX 到 calculateAll() 返回,包含開啟階段執行的工作。5 次測量的中位數;銷售條件計數為單次成功的診斷記錄。

Rust 載入與計算分段實測

各列獨立取中位數,分段中位數之和不一定等於連續總耗時的中位數。

樣張原生檔案讀取、反序列化
與載入(秒)
首次建依賴+全量執行及應用(秒)連續總耗時(秒)
五十萬公式1.272.253.54
混合公式負載0.604.505.08
大型預測模型3.6513.9417.67
大型業務分析2.659.4612.29
銷售條件計數(COUNTIFS)0.612.973.54
多工作表專案預算0.390.881.27
彙總公式0.090.180.27
巢狀 IF 與工作日計算0.271.401.65
CBAM 計算模型0.091.081.19
小型預測模型2.4010.2013.02

這些工作簿包含什麼

公式數量按可執行公式節點統計,不一定等於物理公式單元格數。資料格指非公式的有值單元格,包含表頭。樣本集由 9 份主要樣張和 1 份規模補充樣張組成,並非 10 個完全獨立的公式家族。

樣張公式節點資料格 / 工作表公式特徵
五十萬公式500,0011,000,047 / 2SUM、AVERAGE、IF、XLOOKUP;大規模重複公式。
混合公式負載367,954432,055 / 7SUMIF、AVERAGEIFS;條件統計與日期、文字混合。
大型預測模型1,463,7211,549,982 / 46 層巢狀;INDEX、LARGE、OFFSET、MATCH 與陣列。
大型業務分析1,992,537113,084 / 317 層巢狀;跨表引用、文字處理與相容性公式。
銷售條件計數(COUNTIFS)349,630299,573 / 2IF、AND、COUNTIFS;逐行擴大的條件計數範圍。
多工作表專案預算68,576101,378 / 5454 張工作表;使用 VLOOKUP、INDIRECT 的跨表預算。
彙總公式26,9516,841 / 2IFERROR、AVERAGE、SUM;長引數彙總。
巢狀 IF 與工作日計算118,821338 / 110 層 IF 巢狀;NETWORKDAYS 工作日計算。
CBAM 計算模型52,73913,738 / 196 層巢狀;查詢、條件統計、動態引用與矩陣。
小型預測模型974,6251,040,507 / 4與大型預測模型屬於同一公式家族,規模更小。

資料、校驗與複核

報告對公式數量與抽樣結果進行了校驗,以確認測試路徑中的計算完整性;這不代表跨產品所有公式結果完全一致。

重算介面說明:Excel CalculateFullRebuild · LibreOffice calculateAll。

© 2026 DreamNum Co., Ltd.