2019 年 7 月 29 日,星期一
作者:Sandy Galloway

DataTables 下載統計數據 - 2019

大家好,我是 Sandy,自今年夏天開始我就和團隊的其他成員一起開發 DataTables。我目前在史崔克萊德大學修讀電腦與電子系統學系。我即將開始我的三年級課程,並且非常享受在那裡以及在 DataTables 的時光。我的第一個專案是開發一個最佳化的 CDN 傳遞伺服器(這也是這篇部落格文章的主題),而我最近則轉向開發備受期待的 SearchPane 擴充套件(關於這部分的詳細內容將在未來的文章中說明)!

CDN 統計數據

由於持續需要提升 DataTables 套件整體的效能,因此決定升級 CDN 發佈系統。在執行這項任務之前,決定先分析目前 CDN 使用情況的統計數據,以及其使用方式。此處分析的數據用於內部,以便針對實際使用情況優化新的 CDN 伺服器。我們發現結果很有趣,因此發佈這篇文章純粹是為了向 DataTables 社群提供資訊,而非任何實用目的。

這篇文章將總結到目前為止的分析結果。 先前的文章中有一個非常類似的主題,雖然此分析可以更加深入,因為我使用了 CloudFlare 提供的日誌,這是之前無法取得的。未來的文章將會說明開發的伺服器軟體及其部署(請注意,在撰寫本文時,它尚未部署)。

關於解讀時間軸圖表的注意事項

在這篇文章中,您會看到各種時間軸圖表。這些圖表顯示 DataTables 的特定擴充套件或元件的每個版本的請求數量。一般趨勢是,較新發佈版本的用量應該會較高。但是,這些數字會受到發佈間隔以及建置器功能中包含的發佈時間長度的影響。在這些圖表中,預期資料點的值會越高,該資料點與下一個資料點之間的時間間隔越長。還值得注意的是,有些發佈版本之間的時間間隔不到 24 小時,若發生這種情況,則會省略較早的兩個值,因為它們的值很小(如果有),這樣可以使圖表更具可讀性。還應該注意的是,由於類似的原因,也會省略沒有點擊的版本。

數據集

用於編譯這些統計數據的數據由 CloudFlare 提供,我們使用它作為快取服務來處理對 CDN 的大多數請求。我們使用的是 24 小時的數據,記錄時間為 2019 年 6 月 5 日 00:00 到 2019 年 6 月 6 日 00:00。這項研究提供了超過 800 萬個數據點。

還值得注意的是,DataTables 在其他 CDN 和 GitHub 上廣泛提供。因此,這些數字並未顯示 DataTables 的全部使用範圍,但確實提供了關於其在全球使用情況的深入了解。

概述

在深入研究 DataTables 和擴充套件的使用細節之前,讓我們先考慮大局,看看 DataTables CDN 上的軟體是如何使用和請求的。

壓縮

DataTables 產生器頁面上包含的選項之一是壓縮腳本。對建置器的請求中有 91.7% 包含壓縮選項。壓縮後的檔案平均大小為 64.7 KB。未壓縮的檔案平均大小為 224.6 KB。

建置器

目前版本的下載「建置器」(我們稱之為為 下載頁面連結檔案的軟體),已分成多個版本,在請求 URL 中以字母作為前綴。請注意,新的發佈伺服器將不再是這種情況,但仍將支援舊樣式的 URL!

最受歡迎的建置器版本是 v,佔請求份額的 75.8%。它可用時間明顯比其他版本長。

Builder version usage

樣式

DataTables 包含多種樣式選項。最受歡迎的選項是預設的 DataTables 樣式架構,佔請求份額的 56.4%。第二個最受歡迎的選項是 Bootstrap 3,佔請求的 25%。

Styling framework usage

jQuery

86.7% 的建置請求未包含 jQuery。最受歡迎的 jQuery 版本是 jQuery 3,佔請求份額的 7.0%。

jQuery included in build requests

返回時間

對 CDN 的所有請求的平均返回時間為 0.03 秒。

對 CDN 的請求產生快取命中的平均返回時間為 0.007 (0.01) 秒。

對 CDN 的請求產生建置的平均返回時間為 0.03 (0.23) 秒。

檔案大小

建置請求後從 CDN 返回的平均檔案大小為 33.8 KB (30.5 KB)。

.js 檔案的平均檔案大小為 66.5 KB (56.2 KB)。

.css 檔案的平均檔案大小為 4.2 KB (4.1KB)。

裝置

不令人意外的是,最多點擊次數來自桌上型電腦裝置,佔份額的 63.8%。其次是行動裝置,佔份額的 31.5%。平板電腦僅佔份額的 4.7%。

Device usage

協定

絕大多數請求來自 http/2 協定,佔份額的 77.4%。其次是 http/1.1,佔 21.8%,而 http/1.0 僅佔份額的 0.8%。

Protocol usage

瀏覽器

最受歡迎的瀏覽器是 Chrome/74,佔份額的 14.0%。

Safari 緊隨其後,佔份額的 6.8%。

Edge/18 是最不常使用的瀏覽器,僅佔份額的 2.8%。

Browser distribution

快取

建置器請求在 96% 的情況下返回快取命中,平均返回時間僅為 0.01 秒。

僅在 2.5% 的情況下記錄到快取未命中,平均返回時間為 0.62 (0.64) 秒。

Cache response type

在到達建置器的結果中,有 86.2% 導致發生建置操作。12.3% 的請求是從建置器 CDN 上的快取返回的。只有 1.6% 對 CDN 的請求導致錯誤。

Result of request to CDN

最常請求的檔案

最常請求的檔案是建置器上目前提供的最基本版本的 DataTables,沒有任何擴充套件,版本為 1.10.19。緊隨其後的是版本 1.10.16,沒有任何擴充套件。

Most requested files

這進一步細分為 javascript 和 CSS 檔案。最受歡迎的 Javascript 檔案幾乎都是 DataTables 的基本版本。

Most requested JS files

最常請求的 CSS 檔案也主要是最近發佈的幾個 DataTables 版本,沒有任何擴充套件。

Most requested CSS files

突發性

我們透過分析 10 分鐘間隔的數據來分析突發性。透過取所有間隔的平均請求數量,可以計算標準差。

對 CloudFlare 的請求中,每個 10 分鐘間隔的平均值略高於 562,000。這得到的標準差約為 140,000 或 24.9%。

對建置器的請求中,每個 10 分鐘間隔的平均值為 62662。這得到的標準差約為 18796 或 29.9%。10 分鐘間隔的峰值請求為 97295,每秒最大平均值為 167。

DataTables 版本

從 CDN 請求的最受歡迎的 DataTables 版本是 1.10.18,這是建置器上可用的最新版本,自 2018 年 6 月 14 日起可用,佔份額的 31.4%。其次是版本 1.10.12,佔份額的 21.6%。這些是預期中的結果,因為版本 1.10.13-17 在建置器上僅提供很短的時間。

DataTables version usage

下圖顯示了 DataTables 的版本與其發佈日期之間的受歡迎程度。

DataTables version popularity

擴充套件

所有擴充套件都分別和整體進行了分析。每個擴充套件的個別分析可以在下面的相關標題下找到。

最受歡迎的擴充套件是 responsive。它包含在從 CDN 請求的 36.5% 建置請求中。

Extension inclusion in build requests

65% 的建置請求未包含任何擴充套件,並且所有擴充套件被請求的次數有 17,832 (81) 次。如果所有擴充套件都在使用,這沒有問題,但是應該注意的是,這會顯著降低回應時間。因此,如果可以的話,應避免包含所有擴充套件。

Number of Extensions includes

每個建置請求的平均擴充套件數量為 1.66 (1.26)。包含至少 1 個擴充套件的建置請求的平均數量為 4.75 (4.30)。

返回時間稍後會提到,但似乎應該注意的是,所有類型的建置請求的平均返回時間為 0.029 (0.026) 秒。平均檔案大小略高於 33 KB (30 KB)。

AutoFill

最受歡迎的 AutoFill 版本是 2.2.2,佔 AutoFill 請求份額的 31.4%,其次是版本 2.2.0,佔份額的 25.1%。有趣的是,儘管發佈已有一年多,但 2.3 及更高版本僅佔份額的 19.6%。

AutoFill version usage

下圖顯示了 AutoFill 的版本與其發佈日期之間的受歡迎程度。

AutoFill version popularity

Buttons

最受歡迎的 Buttons 版本是 1.5.1,佔份額的 21.4%,其次是 1.2.2,佔份額的 15.7%。(幾個 1.5.1 佔份額的 16.9%,而 1.5.2 佔份額的 16.0%。另一個有趣的結果是 1.2.2 上傳到 github 的時間與 1.5.1 一樣長。)

Button version usage

下圖顯示了 Buttons 的版本與其發佈日期之間的受歡迎程度。

Button version popularity

Buttons 子擴充套件

Buttons 可能會包含 4 個子擴充套件。雖然有 61.3% 的請求未包含添加其中一個擴充套件的請求,但最受歡迎的是 HTML,有 12.9% 的請求包含它。

Buttons sub-extensions count

ColReorder

最受歡迎的 ColReorder 版本是 1.4.1,佔份額的 37.7%,緊隨其後的是 1.5.0,佔份額的 30.8%。1.5.0 是最近添加到產生器的版本,並且已經可以使用將近一年了。(1.5.0 是最近添加到產生器的版本,並且已經可以使用將近一年了。它佔份額的 33.1%,緊隨其後的是版本 1.4.1,佔份額的 29.5%。)

ColReorder version usage

下圖顯示了 ColReorder 的版本與其發佈日期之間的受歡迎程度。

ColReorder version popularity

FixedColumns

最受歡迎的 FixedColumns 版本是 3.2.5,佔份額的 35.5%。3.2.5 已可以使用將近一年了。緊隨其後的是 3.2.2,佔份額的 34%。3.2.2 在產生器上可用了 16 個月。(其次是產生器上可用的最新版本 3.2.5,佔份額的 34.6%,並且已可以使用將近一年。)

FixedColumn version usage

下圖顯示了 FixedColumns 的版本與其發佈日期之間的受歡迎程度。

FixedColumn version popularity

FixedHeader

FixedHeader 最受歡迎的版本是 3.1.2,佔有 45.9% 的份額。考慮到它在 2016 年至 2017 年間提供了 19 個月的時間,這並不令人意外。其次是 3.1.4,它是 Generator 上最新的可用版本,佔有 27.9% 的份額。

FixedHeader version usage

下圖顯示了 FixedHeader 各版本相對於其發布日期的受歡迎程度。

FixedHeader version popularity

KeyTable

KeyTable 最受歡迎的版本是 2.3.2,在結果中佔有 31.4% 的份額。其次是 Generator 上最新發布的 2.5.0 版本,佔有 24.5% 的份額。

KeyTable version usage

下圖顯示了 KeyTable 各版本相對於其發布日期的受歡迎程度。

KeyTable version popularity

Responsive

Responsive 最受歡迎的版本是 2.2.2,在結果中佔有 31.7% 的份額。這是 Generator 上最新的 Responsive 版本,並且已可用近一年。

Responsive version usage

下圖顯示了 Responsive 各版本相對於其發布日期的受歡迎程度。

Responsive version popularity

RowGroup

RowGroup 最受歡迎的版本是 1.0.2,佔有 48.1% 的請求份額。鑑於它在被 1.1.0 版本取代之前,在 Generator 中使用了最長的時間,這並不令人意外,而 1.1.0 版本佔有 27.7% 的份額。

RowGroup version usage

下圖顯示了 RowGroup 各版本相對於其發布日期的受歡迎程度。

RowGroup version popularity

RowReorder

RowReorder 最受歡迎的版本是 1.2.3,佔有 33.2% 的請求份額,其次是 1.2.4,這是 RowReorder 最近可用的版本,佔有 27.5% 的請求份額。

RowReorder version usage

下圖顯示了 RowReorder 各版本相對於其發布日期的受歡迎程度。

RowReorder version popularity

Scroller

Scroller 最受歡迎的版本是 1.4.2,佔有 53.0% 的份額。鑑於它已提供了 16 個月,這並不令人意外。其次是 1.5.0 版本,佔有 13.5% 的份額,它是 Generator 上最新的版本,直到最近發布了 2.0.0 版本。

Scroller version usage

下圖顯示了 Scroller 各版本相對於其發布日期的受歡迎程度。

Scroller version popularity

Select

Select 最受歡迎的版本是 1.2.6,佔有 48.3% 的結果份額。它最近已被 1.3.0 版本取代。1.2.6 的前一個版本以 15.6% 的票數位居第二。

Select version usage

下圖顯示了 Select 各版本相對於其發布日期的受歡迎程度。

Select version popularity

舊版擴展

Table Tools

儘管已被 Buttons 和 Select 擴展取代,並且無法通過下載建構器使用,TableTools 仍然通過通用 CDN 看到一些使用,佔有 0.6% 的請求。如果您是這種情況,我們強烈建議您考慮升級到更新的擴展。

ColVis

ColVis 也仍然看到一些使用,CDN 上有 0.4% 的請求包含它。同樣,如果您是這種情況,我們強烈建議您考慮升級到更新的擴展 - 在這種情況下是 Buttons。