每一個瀏覽器新版本發佈,都號稱性能有顯著提高,而且市面有各類測試工具,測試結果也是截然不同,好比下面這篇文章:html
https://www.oschina.net/news/97924/browser-benchmark-battle瀏覽器
測試結果就頗有意思,請看下以下兩幅截圖:工具
一言以蔽之:Google 的測試引擎 Chrome 勝,Mozilla 的測試引擎 Firefox 勝!post
這樣的測試結果難免讓人大跌眼鏡,這裏面的水分也很多阿,至少對自家的瀏覽器有優化來着。性能
最近在優化 FineUIPro 的表格性能,通常來講表格行數在 100 條以內都不會有問題。但爲了性能調校,咱們將表格行增長到 500 多行,列增長到 20 多列,而且行高不固定,來測試下各個瀏覽器的性能。測試
測試使用的電腦是 MacBook Pro 筆記本(英特爾 i7-8750H,32GB內存,512GB SSD),單獨拆分出一個新的 256GB 分區用來安裝 Windows 10 Pro(64位)系統,並更新至最新補丁。優化
參與測試的瀏覽器都是最新版,分別爲:ui
測試頁面代碼以下:spa
<!DOCTYPE html> <html> <head> <title></title> <script> var __STARTTIME = new Date(); </script> </head> <body> <form id="form1" runat="server"> <f:PageManager ID="PageManager1" AutoSizePanelID="Grid1" runat="server" /> <f:Grid ID="Grid1" IsFluid="true" CssClass="blockpanel" Margin="20px" ShowBorder="true" ShowHeader="true" Title="表格(23列,500行,行高不一樣)" EnableCollapse="false" runat="server" DataKeyNames="Id" EnableCheckBoxSelect="true" KeepCurrentSelection="true"> <Columns> <f:RowNumberField /> <f:BoundField Width="80px" DataField="ID" HeaderText="標識" /> <f:BoundField Width="100px" DataField="Name" HeaderText="姓名" /> ...... </Columns> <Listeners> <f:Listener Event="render" Handler="onGridRender" /> </Listeners> </f:Grid> </form> <script> function onGridRender() { F.ui.Grid1.setTitle('表格(23列,500行,行高不一樣) - 渲染:' + ((new Date() - __STARTTIME) / 1000).toFixed(2)); } </script> </body> </html>
這裏面有兩個關鍵點:.net
1. 在 <head> 標籤中記錄一個開始時間。
2. 在表格的渲染完成事件(render)中記錄一個結束時間,並渲染耗時更新到表格標題欄。
下面是測試結果:
Firefox:
Chrome:
Edge:
IE11:
原本在我心目中 Chrome 應該是最快的,實際開發中也一直在用 Chrome ,可是結果卻很意外。下面對上述結果進行一個綜述:
瀏覽器 | 表格渲染須要的時間(秒) |
Firefox | 1.2 |
Chrome | 2.7 |
Edge | 5.1 |
IE11 | 9.6 |
這也就來到了本文標題的結論,在我這個特定頁面的測試中:
Firefox的性能是Chrome的2倍,Edge的4倍,IE11的6倍!
你也能夠本身試一試,看看是否是Firefox要比Chrome快,在線測試地址:
https://pro.fineui.com/#/grid/_grid_many_columns.aspx
每次關於瀏覽器的對比都會引來不一樣的聲音,不要緊,所謂蘿蔔青菜各有所愛,性能並非瀏覽器的所有,而且這裏的性能測試也只是具體到一個特定頁面的加載速度,可能和你的實際瀏覽體驗截然不同。
不過就本測試案例而已,Firefox的性能確實優於Chrome不少,就在結束本文的時候,我還發現另一個有趣的現象,那就是選中行的延遲:
1. 在Chrome選中一行時,能夠感受到明顯的卡頓
2. 在Firefox選中一行時,很是絲滑,幾乎沒有卡頓
Chrome:
Firefox:
這又該做爲解釋,由於是相同的代碼相同的邏輯,不至於 Chrome 比 Firefox 差那麼多吧,這也算是一個開放的問題,等後期我有了進一步的發現,再回來。
至於上面 FineUIPro 測試頁面的性能,我還在進一步調優,你也能夠過段時間回來看看,我會進一步分享調優的過程和結果。
不忘初心,砥礪前行!
本系列:
=======================
【原創】用事實說話,Firefox 的性能是 Chrome 的 2 倍,Edge 的 4 倍,IE11 的 6 倍!