報表工具對比選型系列 - 頁面渲染效能
頁面渲染是指報表在計算完成後,生成 html 頁面時加上各種格式外觀屬性的過程。如果在報表中新增了大量的呈現效果(隔行異色、背景圖、條件警戒色等)時,頁面渲染的速度就會受到影響變慢,但往往這些呈現效果又是必須的,所以這個時候就得看報表的效能了。
這裡對潤乾、帆軟和 smartbi 三款報表工具進行測試,業內還有永洪和億信也宣稱對複雜報表的支援較好,但經過基本模型測試就會發現這兩款產品與前述三款差距還是比較明顯(可參考後面的連結),就沒必要再做更多評測了。
測試的用例在資料計算上都比較簡單,因為主要考察渲染效能,只在樣式上增加了上面說到的幾個條件樣式,具體的可以看下面的說明。
用例一,簡單行式表
“銷售訂單明細表”,欄位 48 個(對應到報表為 48 列),總資料量 8600 條。
報表資料集 SQL:
select * from 銷售訂單統計彙總 where 訂單ID!=? order by 訂單IDselect * from 銷售訂單統計彙總 where 訂單ID!=? order by 訂單ID
為保證測試公平,增加引數使得每次計算資料不同,報表不走快取。
結果報表式樣:
這是潤乾報表生成結果,其他兩款產品都是同樣效果。
條件格式
1、 隔行異色 2、 折扣,折扣大於0.15(即達到85折)標紅(前景色) 3、 運貨費,分十個區間判斷,小於等於10標為綠色、>10&&<=20某色、>20&&<=30、>30&&<=40、 >40&&<=60、>60&&<=80、>80&&<=100、>100&&<=120、>120&&<=140、大於140標紅。 4、 訂單ID,根據“運貨費”判斷分十個區間,小於等於10標為綠色、>10&&<=20某色、>20&&<=30、 >30&&<=40、>40&&<=60、>60&&<=80、>80&&<=100、>100&&<=120、>120&&<=140、大於140標紅。 且 >100&&<=120 字型加粗、>120&&<=140 字型加粗、大於140字型加粗1、 隔行異色2、 折扣,折扣大於0.15(即達到85折)標紅(前景色)3、 運貨費,分十個區間判斷,小於等於10標為綠色、>10&&<=20某色、>20&&<=30、>30&&<=40、 >40&&<=60、>60&&<=80、>80&&<=100、>100&&<=120、>120&&<=140、大於140標紅。4、 訂單ID,根據“運貨費”判斷分十個區間,小於等於10標為綠色、>10&&<=20某色、>20&&<=30、 >30&&<=40、>40&&<=60、>60&&<=80、>80&&<=100、>100&&<=120、>120&&<=140、大於140標紅。 且 >100&&<=120 字型加粗、>120&&<=140 字型加粗、大於140字型加粗
測試結果
“無”表示沒有設定條件格式的報表;“有”表示增加了條件格式後的報表;“無輸出”指後臺不輸出對應時間;“總用時”提從訪問報表到頁面呈現出來;
以下結果均同瀏覽器,分別為總用時、後臺報表計算、生成 html 及翻頁的 5 次平均資料。
1、 smartbi 不支援不分頁展現,所以無法測試到單頁 8600 行 *48 列的規模。
按其最大 2000 行強制分頁測試:
無條件格式:從訪問到首先呈現出來是 17s,計算 + 生成 html 在 3s 左右,翻頁時間較長均在 17s 左右。
有條件格式:從訪問到首先呈現出來是 30s,計算 + 生成 html 在 6s 左右,翻頁時間較長,達到在 40s 以上。
2、帆軟當不分頁時,後臺不再輸出生成 html 的用時,標為“無輸出”了。
從用例一的測試結果看,在常規的單頁格數規模下,三款產品的頁面渲染基本一樣,且有無條件格式基本不受影響。不過可以看到帆軟的報表計算太慢了,所以頁面端表現出的感受是出表最慢。
單頁格數增大到 500*48 規模時,在報表沒有條件格式下,頁面渲染用時也基本一致,都在 3s 左右。增加條件模式後,帆軟和 smartbi 的總用時相比潤乾都有較大增加,帆軟是花在報表計算上了,頁面渲染用時沒什麼變化。但對 smartbi 頁面渲染能力已經有了較明顯影響,對比無條件格式時增加了 50% 的時間。
再次增大到 8600*48 規模(因 smartbi 不支援超過 2000 行的分頁,這個規模就不對比它了),此時帆軟和潤乾,不論總用時還是渲染能力差距更很明顯了,大家參考潤乾和帆軟的測試資料一目瞭然,潤乾均優於帆軟。
再結合翻頁來看,常規規模下,潤乾和帆軟幾乎沒什麼耗時,翻頁流暢,而 smartbi 會有個卡頓(每頁都有 1s 左右的用時)。來到 500 * 48 的規模,有無條件格式對潤乾依然沒有影響,帆軟對比自身無條件格式翻頁增加 60% 時長,但 smartbi 的有些不理解,從資料看,每翻一頁和總用時一樣(猜測:smartbi 對於清單報表是使用資料庫分頁的機制,每次都要按分頁行數取數、再計算、生成 html,然後頁面載入,這也和翻頁及總用時一致的資料看相符,但目前沒得到官方支援的回覆)。針對 smartbi 最大支援 2000 行強制分頁,前面資料表格下面也單獨做了測試,當按 2000 行 * 48 列分頁時,增加完條件格式,時間翻了近一倍,並且翻頁比呈現出首頁的時間都長了。
小結
小結一下:常規規模,潤乾最優,smartbi 次之,帆軟輸在了報表計算上,總用時太久了。500 行 * 48 列規模下,潤乾最優,帆軟次之,smartbi 翻頁太慢。特大規模下,依然潤乾最優,帆軟次之,smartbi 最差。用例一整體表現出潤乾在效能最佳化上全面(模型好)也最好,帆軟的計算模型不夠好,500 行 * 48 列規模,增加條件格式後增加了不少計算時間。smartbi 只適合常規頁規模的情況,大的就很難用了。
用例二,交叉表
“產品銷售情況表”,表資料如下
每一個訂單所屬一個貨主地區,每個訂單均有 60 種不同產品,每種產品有對應銷售金額。
訂單號有 847 個,交叉報表按行分組(地區、訂單編號)、列分組(產品名稱),規模為 847 行 * 62 列,均採用不分頁方式展現。
報表資料集 SQL:
select * from 產品銷售情況表 where d訂單編號!=? order by 貨主地區,訂單編號select * from 產品銷售情況表 where d訂單編號!=? order by 貨主地區,訂單編號
同樣,增加引數使得每次計算資料不同,報表均設定不走快取。
結果報表式樣:
條件格式
根據條件判斷,給三個地區(華北、東北、華東)各分配一套色系,華北紅色系,東北藍色、華東綠色,然後根據 10 類產品判斷,給予色系內不同深淺顏色的前景色。
測試結果
“無”表示沒有設定條件格式的報表;“有”表示增加條件格式後的報表;“總用時”指訪問報表到頁面呈現完;“後臺時間”指報表計算 + 生成 html 時間
以上結果均同瀏覽器,5 次平均用時。
對於交叉類的報表,潤乾的表現依然是最好的(該報表只有一頁資料,所以只是感覺上差的不太多), 另外帆軟比 smartbi 表現要好,或許是針對這類報表,帆軟的模型要優於 smartbi。
增加複雜條件格式後的資料表現與用例一一致,潤乾依然是衰減最小,帆軟衰減也很小,smartbi 的頁面渲染導致的衰減明顯要大得多,用時比潤乾和帆軟要多出好幾倍。
總結
總的來看,潤乾不論運算還是渲染的效能均是最優。帆軟和 smartbi 針對不同格式報表,不同的資料規模,有些效能差異,但整體看帆軟要優於 smartbi 的,比較均衡,相對也更穩定。smartbi 在處理頁面較大且有較多格式的報表時渲染效能較差。
相關連結
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957599/viewspace-2714689/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 報表工具選型對比系列 - 大報表
- 報表工具選型對比系列 - 多源關聯效能
- 報表工具對比選型系列 - 容量及相關效能
- 報表工具對比選型系列用例——多源分片報表
- 報表工具對比選型系列——列印與匯出
- 報表工具對比選型系列用例——過程計算
- 2020主流報表工具對比選型深度測評系列——中國式複雜報表之多源分片報表
- 頁面渲染:效能分析
- 報表工具對比選型系列—多樣性資料來源支援度
- SAP UI5和React的頁面渲染效能比較UIReact
- 報表工具對比之潤乾報表與銳浪報表對比
- MQ選型對比文件MQ
- 從兩家主流報表工具的報jia看行業水深 - 常用報表工具對比 - 主流報表對比行業
- RabbitMQ與Kafka選型對比MQKafka
- 頁面渲染機制
- 動態生成表-判斷表是否存在效能對比
- 5種常見Bean對映工具的效能比對Bean
- 頁面渲染:過程分析
- nGrinder詳細介紹及效能工具對比
- 資料庫選型比對 Oracle vs sqlserver資料庫OracleSQLServer
- 統一配置中心技術選型對比
- 網頁渲染方式-從靜態頁面到服務端渲染網頁服務端
- 頁面怎麼做點選表頭排序排序
- 前端頁面效能前端
- vue頁面渲染是閃爍{{}}Vue
- 前端頁面渲染markDown檔案前端
- React 元素如何渲染到頁面React
- for & range 效能對比
- 報表/BI工具選型重點注意事項和驗證技巧分享
- 五款免費報表工具推薦:山海鯨報表、Tableau 等優劣對比
- BI報表軟體選型介紹
- jackson、fastjson、kryo、protostuff等序列化工具效能對比ASTJSON
- Java實體對映工具MapStruct 與BeanUtils效能比較JavaStructBean
- 如何使用prerender-spa-plugin外掛對頁面進行預渲染Plugin
- 瀏覽器頁面渲染機制瀏覽器
- SpringBoot之整合thymeleaf渲染Web頁面Spring BootWeb
- pixi.js持續渲染頁面JS
- ERP系統型別大對比,切勿盲目選擇型別