20秒的業務優化到底有多必要?看完你就懂了

SpreadJS v14.0正式版下載

未來的十年是產業互聯網的時代,產業互聯網的特點是數字化、線上化、效率化。這意味着各行各業急需數字化轉型和效率轉型。而在這場轉型過程中,企業 OA 系統扮演着至關重要的角色。

對企業而言,OA 系統不僅提高了企業的組織管理水平及辦公效率,更實現了提高決策效能的目的,使企業競爭力得到提升。但是,隨着 OA 系統功能模塊越來越齊全,越來越臃腫,也讓這一效率平臺逐漸“失效”。

一、OA 系統的核心,是業務管理中的效能問題

OA 系統的管理最終還需要回歸至業務管理的道路上來,畢竟業務纔是企業的運作根本。OA 系統中常見的業務管理包括哪些呢?比如財務報表的製作,憑證的生成;採購部的供貨商的管理,採購單據的輸入與保管;業務部的合同管理,客戶維護等等。這些大部分都是在表格的形式中完成分析與決策的,需要要求 OA 系統將數據完好的保存與共享,並與其他系統進行數據整合。

但目前企業 OA 系統中的表格功能,大部分都肩負着非常複雜的業務需求。不僅需要具備着傳統 Excel 中的大部分核心功能,包括函數計算、條件格式、圖表等等;還需要支持高效的多人協同編輯以及龐大的數據處理需求。

數據量以及表格功能的逐漸增加,隨之而來的就是計算速度的降低。這不僅會影響工作效率,打斷思路的連貫性,也會增加員工或者用戶的出錯率和對工作的厭煩程度(尤其時在處理重複任務時)。

此外,內存佔用的問題,也是 OA 系統中一項非常重要但容易被人忽略的性能指標,如果技術選型時未考慮內存佔用問題,往往會出現一個 3M 的文件消耗 100 多兆內存空間的情況。如果同時進行包含大數據量的 Excel 讀操作,很容易造成內存溢出問題。傳統企業的技術決策層普遍都會忽視“內存的價值”,但是:

  • 一旦訪問量大,內存就會瞬間上漲,導致頻繁 GC,導致性能下降;
  • 內存高也會導致服務器分頁,這時性能就會急劇下降;
  • 吞吐量下降會導致隊列排滿,服務器會報 503 等錯誤。

所以除非企業真的有充足的預算去升級服務器,不然真的不能忽略內存的優化。這兩個問題的背後,也引出了我們今天討論的重點 —— 如何提高 OA 系統表格模塊的數據處理性能 & 表格數據處理產品的技術選型。

二、你願意投入多少成本,爲 20 秒的業務優化買單?

大部分企業在項目的日常開發中遇到表格數據處理需求時,往往會在業務代碼中直接引入如 Apache POI 這類的技術解決方案。

Apache POI 作爲一款非常強大的 Office 軟件操作包,是 Apache 軟件基金會用 Java 編寫的免費開源的跨平臺 Java API,提供了對 Microsoft Office 格式文件的讀寫功能,在項目中的應用非常廣泛,作爲一款開源軟件,爲開發者提供了極大的便利。

然而,即便 POI 很強大,但仍存在一些不可忽視的問題。首先是代碼相對比較繁瑣,並且當 Excel 的數據量非常大的時候,POI 的操作邏輯是將整個 Excel 的內容全部讀出來放入到內存中,這就導致內存消耗非常嚴重,一個 3M 的文件甚至需要消耗 100 多兆的內存空間。如果同時進行包含大數據量的 Excel 讀操作,很容易造成內存溢出問題。

除了耗內存以外,還有版本兼容性不夠等缺點,在進行版本升級的過程中,需要對以前的代碼進行修改,或者對 jar 包進行版本隔離,這些都對項目帶來了很多潛藏的風險。

爲了幫助有相關需求的企業人員進行技術選型,提供一些更直觀的數據對比,我們爲大家進行了一次對比測試,下圖是測試的相關結果:

20秒的業務優化到底有多必要?看完你就懂了

從測試數據來看,葡萄城提供的服務端高性能表格組件 GrapeCity Documents for Excel(簡稱:GcExcel)無論從運行速度、功能,還是內存消耗等方面,都要比 Apache POI 表現的更爲優秀,如其平均處理速度可以達到 POI 的 7 倍,而內存消耗卻不到七分之一。

爲了進一步測試 Excel 文件的讀取性能極限,我們使用了 StopWatch 函數來監聽 Excel 的打開時間,測試對象爲一個包含 30 列、1,000,000 行、30,000,000 個單元格數據的電子表格文件。經過測試, Excel 打開這個文件需要等待 34 秒,而用 GcExcel 打開這樣一份文件,僅需 12 秒。

這 20 秒的時間,對於用戶體驗以及業務流轉來說,重要性不言而喻。這個測試結果也爲企業選型提供了一個思路 —— 你願意投入多少成本,來爲這 20 秒的業務優化買單?

三、無需依賴 Office 和 POI,讓表格數據處理性能飆升

爲了這短短的 20 秒,葡萄城嘗試了大量的優化實踐,如減少垃圾回收、共享存儲、利用高速緩存、使用基於集合的操作運算、利用 SIMD 計算數據等,基於這些實踐推出的表格組件 SpreadJS 和 GcExcel 已經幫助許多企業減少了項目研發成本,實現了更高的處理性能。

以 GcExcel 爲例,其在服務端實現批量導入導出電子表格數據,有效規避了前端瀏覽器的內存限制,配合 SpreadJS 使用,可讓系統達到真正的前後端負載均衡,幫助開發者輕鬆應對 OA 系統開發時經常會面臨的在線文檔前後端數據同步、批量導出與打印,以及報表模板高性能處理等業務場景需要。

其實,表格技術及其衍生工具的概念並不新穎,但隨着企業對於系統處理性能和易用性的要求逐步加深,在近幾年愈發受到開發人員和技術決策者的關注,葡萄城作爲深耕表格技術領域的探索者,其推出的多款表格組件已成爲表格技術領域的“必備解決方案”,幫助企業用極低的成本達到“降本增效”的目的。

結語

在數字化轉型的浪潮下,大部分企業的業務運轉中表格應用場景已經十分廣泛,隨着業務的發展,本地文檔管理或者傳統開源免費的 POI,已經無法滿足用戶對於表格產品的性能和系統兼容度的需求,這也迫使表格產品不斷的優化迭代,優勝劣汰。誰能找到最契合自身業務發展的技術選型或產品,誰便更有可能找到更多的發展契機。

SpreadJS | 下載試用

純前端表格控件SpreadJS,兼容 450 種以上的 Excel 公式,具備“高性能、跨平臺、與 Excel 高度兼容”的產品特性,備受華爲、蘇寧易購、天弘基金等行業龍頭企業的青睞,並被中國軟件行業協會認定爲“中國優秀軟件產品”。SpreadJS 可爲用戶提供類 Excel 的功能,滿足表格文檔協同編輯、 數據填報、 類 Excel 報表設計等業務場景需求,極大的降低企業研發成本和項目交付風險。

本文轉載自葡萄城官網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章