你愿意花多少錢(qián),為 20 秒的業(yè)務(wù)優(yōu)化買(mǎi)單?

未來(lái)的十年是產(chǎn)業(yè)互聯(lián)網(wǎng)的時(shí)代,產(chǎn)業(yè)互聯(lián)網(wǎng)的特點(diǎn)是數(shù)字化、線上化、效率化。這意味著各行各業(yè)急需數(shù)字化轉(zhuǎn)型和效率轉(zhuǎn)型。而在這場(chǎng)轉(zhuǎn)型過(guò)程中,企業(yè) OA 系統(tǒng)扮演著至關(guān)重要的角色。

對(duì)企業(yè)而言,OA 系統(tǒng)不僅提高了企業(yè)的組織管理水平及辦公效率,更實(shí)現(xiàn)了提高決策效能的目的,使企業(yè)競(jìng)爭(zhēng)力得到提升。但是,隨著 OA 系統(tǒng)功能模塊越來(lái)越齊全,越來(lái)越臃腫,也讓這一效率平臺(tái)逐漸“失效”。

  一、OA 系統(tǒng)的核心,是業(yè)務(wù)管理中的效能問(wèn)題

OA 系統(tǒng)的管理最終還需要回歸至業(yè)務(wù)管理的道路上來(lái),畢竟業(yè)務(wù)才是企業(yè)的運(yùn)作根本。OA 系統(tǒng)中常見(jiàn)的業(yè)務(wù)管理包括哪些呢?比如財(cái)務(wù)報(bào)表的制作,憑證的生成;采購(gòu)部的供貨商的管理,采購(gòu)單據(jù)的輸入與保管;業(yè)務(wù)部的合同管理,客戶維護(hù)等等。這些大部分都是在表格的形式中完成分析與決策的,需要要求 OA 系統(tǒng)將數(shù)據(jù)完好的保存與共享,并與其他系統(tǒng)進(jìn)行數(shù)據(jù)整合。

但目前企業(yè) OA 系統(tǒng)中的表格功能,大部分都肩負(fù)著非常復(fù)雜的業(yè)務(wù)需求。不僅需要具備著傳統(tǒng) Excel 中的大部分核心功能,包括函數(shù)計(jì)算、條件格式、圖表等等;還需要支持高效的多人協(xié)同編輯以及龐大的數(shù)據(jù)處理需求。

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

此外,內(nèi)存占用的問(wèn)題,也是 OA 系統(tǒng)中一項(xiàng)非常重要但容易被人忽略的性能指標(biāo),如果技術(shù)選型時(shí)未考慮內(nèi)存占用問(wèn)題,往往會(huì)出現(xiàn)一個(gè) 3M 的文件消耗 100 多兆內(nèi)存空間的情況。如果同時(shí)進(jìn)行包含大數(shù)據(jù)量的 Excel 讀操作,很容易造成內(nèi)存溢出問(wèn)題。傳統(tǒng)企業(yè)的技術(shù)決策層普遍都會(huì)忽視“內(nèi)存的價(jià)值”,但是:

一旦訪問(wèn)量大,內(nèi)存就會(huì)瞬間上漲,導(dǎo)致頻繁 GC,導(dǎo)致性能下降;

內(nèi)存高也會(huì)導(dǎo)致服務(wù)器分頁(yè),這時(shí)性能就會(huì)急劇下降;

吞吐量下降會(huì)導(dǎo)致隊(duì)列排滿,服務(wù)器會(huì)報(bào) 503 等錯(cuò)誤。

所以除非企業(yè)真的有充足的預(yù)算去升級(jí)服務(wù)器,不然真的不能忽略內(nèi)存的優(yōu)化。這兩個(gè)問(wèn)題的背后,也引出了我們今天討論的重點(diǎn) —— 如何提高 OA 系統(tǒng)表格模塊的數(shù)據(jù)處理性能 & 表格數(shù)據(jù)處理產(chǎn)品的技術(shù)選型。

二、你愿意投入多少成本,為 20 秒的業(yè)務(wù)優(yōu)化買(mǎi)單?

大部分企業(yè)在項(xiàng)目的日常開(kāi)發(fā)中遇到表格數(shù)據(jù)處理需求時(shí),往往會(huì)在業(yè)務(wù)代碼中直接引入如 Apache POI 這類的技術(shù)解決方案。

Apache POI 作為一款非常強(qiáng)大的 Office 軟件操作包,是 Apache 軟件基金會(huì)用 Java 編寫(xiě)的免費(fèi)開(kāi)源的跨平臺(tái) Java API,提供了對(duì) Microsoft Office 格式文件的讀寫(xiě)功能,在項(xiàng)目中的應(yīng)用非常廣泛,作為一款開(kāi)源軟件,為開(kāi)發(fā)者提供了極大的便利。

然而,即便 POI 很強(qiáng)大,但仍存在一些不可忽視的問(wèn)題。首先是代碼相對(duì)比較繁瑣,并且當(dāng) Excel 的數(shù)據(jù)量非常大的時(shí)候,POI 的操作邏輯是將整個(gè) Excel 的內(nèi)容全部讀出來(lái)放入到內(nèi)存中,這就導(dǎo)致內(nèi)存消耗非常嚴(yán)重,一個(gè) 3M 的文件甚至需要消耗 100 多兆的內(nèi)存空間。如果同時(shí)進(jìn)行包含大數(shù)據(jù)量的 Excel 讀操作,很容易造成內(nèi)存溢出問(wèn)題。

除了耗內(nèi)存以外,還有版本兼容性不夠等缺點(diǎn),在進(jìn)行版本升級(jí)的過(guò)程中,需要對(duì)以前的代碼進(jìn)行修改,或者對(duì) jar 包進(jìn)行版本隔離,這些都對(duì)項(xiàng)目帶來(lái)了很多潛藏的風(fēng)險(xiǎn)。

為了幫助有相關(guān)需求的企業(yè)人員進(jìn)行技術(shù)選型,提供一些更直觀的數(shù)據(jù)對(duì)比,我們?yōu)榇蠹疫M(jìn)行了一次對(duì)比測(cè)試,下圖是測(cè)試的相關(guān)結(jié)果:

你愿意花多少錢(qián),為 20 秒的業(yè)務(wù)優(yōu)化買(mǎi)單?

從測(cè)試數(shù)據(jù)來(lái)看,葡萄城提供的服務(wù)端高性能表格組件 GrapeCity Documents for Excel (簡(jiǎn)稱:GcExcel) 無(wú)論從運(yùn)行速度、功能,還是內(nèi)存消耗等方面,都要比 Apache POI 表現(xiàn)的更為優(yōu)秀,如其平均處理速度可以達(dá)到 POI 的 7 倍,而內(nèi)存消耗卻不到七分之一。

為了進(jìn)一步測(cè)試 Excel 文件的讀取性能極限,我們使用了 StopWatch 函數(shù)來(lái)監(jiān)聽(tīng) Excel 的打開(kāi)時(shí)間,測(cè)試對(duì)象為一個(gè)包含 30 列、1,000,000 行、30,000,000 個(gè)單元格數(shù)據(jù)的電子表格文件。經(jīng)過(guò)測(cè)試, Excel 打開(kāi)這個(gè)文件需要等待 34 秒,而用 GcExcel 打開(kāi)這樣一份文件,僅需 12 秒。

這 20 秒的時(shí)間,對(duì)于用戶體驗(yàn)以及業(yè)務(wù)流轉(zhuǎn)來(lái)說(shuō),重要性不言而喻。這個(gè)測(cè)試結(jié)果也為企業(yè)選型提供了一個(gè)思路 —— 你愿意投入多少成本,來(lái)為這 20 秒的業(yè)務(wù)優(yōu)化買(mǎi)單?

  三、無(wú)需依賴 Office 和 POI,讓表格數(shù)據(jù)處理性能飆升

為了這短短的 20 秒,葡萄城嘗試了大量的優(yōu)化實(shí)踐,如減少垃圾回收、共享存儲(chǔ)、利用高速緩存、使用基于集合的操作運(yùn)算、利用 SIMD 計(jì)算數(shù)據(jù)等,基于這些實(shí)踐推出的表格組件 SpreadJS 和 GcExcel 已經(jīng)幫助許多企業(yè)減少了項(xiàng)目研發(fā)成本,實(shí)現(xiàn)了更高的處理性能。

以 GcExcel 為例,其在服務(wù)端實(shí)現(xiàn)批量導(dǎo)入導(dǎo)出電子表格數(shù)據(jù),有效規(guī)避了前端瀏覽器的內(nèi)存限制,配合 SpreadJS 使用,可讓系統(tǒng)達(dá)到真正的前后端負(fù)載均衡,幫助開(kāi)發(fā)者輕松應(yīng)對(duì) OA 系統(tǒng)開(kāi)發(fā)時(shí)經(jīng)常會(huì)面臨的在線文檔前后端數(shù)據(jù)同步、批量導(dǎo)出與打印,以及報(bào)表模板高性能處理等業(yè)務(wù)場(chǎng)景需要。

其實(shí),表格技術(shù)及其衍生工具的概念并不新穎,但隨著企業(yè)對(duì)于系統(tǒng)處理性能和易用性的要求逐步加深,在近幾年愈發(fā)受到開(kāi)發(fā)人員和技術(shù)決策者的關(guān)注,葡萄城作為深耕表格技術(shù)領(lǐng)域的探索者,其推出的多款表格組件已成為表格技術(shù)領(lǐng)域的“必備解決方案”,幫助企業(yè)用極低的成本達(dá)到“降本增效”的目的。

結(jié)語(yǔ):

在數(shù)字化轉(zhuǎn)型的浪潮下,大部分企業(yè)的業(yè)務(wù)運(yùn)轉(zhuǎn)中表格應(yīng)用場(chǎng)景已經(jīng)十分廣泛,隨著業(yè)務(wù)的發(fā)展,本地文檔管理或者傳統(tǒng)開(kāi)源免費(fèi)的 POI,已經(jīng)無(wú)法滿足用戶對(duì)于表格產(chǎn)品的性能和系統(tǒng)兼容度的需求,這也迫使表格產(chǎn)品不斷的優(yōu)化迭代,優(yōu)勝劣汰。誰(shuí)能找到最契合自身業(yè)務(wù)發(fā)展的技術(shù)選型或產(chǎn)品,誰(shuí)便更有可能找到更多的發(fā)展契機(jī)。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )