EVM 堆棧和內存使用情況統計報告

本文為機器翻譯
展示原文

以太坊主網| 1,297 個區塊| 區塊 24,409,278–24,514,399

概述

指標價值
分析的區塊1,297
區塊範圍24,409,278 – 24,514,399
EVM 呼叫總數2,092,522
交易總額255,696
平均每次交易呼叫次數8.2
平均每次通話次數1613
平均每塊交易數197

1. EVM 堆疊高度(件)

每次 EVM 呼叫觀察到的最大操作數堆疊深度(每次呼叫一個樣本)。

指標價值
總樣本數2,092,522
敏感0
第50頁8
第75頁16
p90 32
第95頁32
第99頁32
第99.9頁64
最大限度651

分配

0 | 153 (0.0%)1 | 0 (0.0%)2 | ██ 36,066 (1.7%)4 | ████████████████ 265,738 (12.7%)8 | ██████████████████████████████████████████████████ 795,021 (38.0%)16 | ████████████████████████████████████████████████ 763,410 (36.5%)32 | █████████████ 219,094 (10.5%)64 | 13,003 (0.6%)128 | 34 (0.0%)256 | 0 (0.0%)512 | 3 (0.0%)

累積分佈

< 1 | 0.0%< 4 | 1.7%< 8 | ███████ 14.4%< 16 | ██████████████████████████ 52.4%< 32 | ████████████████████████████████████████████ 88.9%< 64 | █████████████████████████████████████████████████ 99.4%< 128 | █████████████████████████████████████████████████ 100.0%

2. EVM 記憶體大小(位元組)

每次 EVM 呼叫分配的最大記憶體量(以位元組為單位)。

指標價值
總樣本數2,092,522
敏感0B
第50頁128B
第75頁256B
p90 512B
第95頁1KiB
第99頁4KiB
第99.9頁16KiB
最大限度578.8KiB

分配

0B | 8,786 (0.4%)32B | 4,675 (0.2%)64B | ██████████████ 332,614 (15.9%)128B | ██████████████████████████████████████████████████ 1,168,239 (55.8%)256B | ██████████ 241,638 (11.5%)512B | █████ 132,630 (6.3%)1KiB | █████ 128,496 (6.1%)2KiB | ██ 48,946 (2.3%)4KiB | 17,222 (0.8%)8KiB | 6,135 (0.3%)16KiB | 1,869 (0.1%)32KiB | 411 (0.0%)64KiB | 599 (0.0%)128KiB | 255 (0.0%)256KiB | 4 (0.0%)512KiB | 3 (0.0%)

累積分佈

< 1B | 0.4%< 64B | 0.6%< 128B | ████████ 16.5%< 256B | ████████████████████████████████████ 72.4%< 512B | █████████████████████████████████████████ 83.9%< 1KiB | █████████████████████████████████████████████ 90.3%< 2KiB | ████████████████████████████████████████████████ 96.4%< 4KiB | █████████████████████████████████████████████████ 98.7%< 8KiB | █████████████████████████████████████████████████ 99.6%< 16KiB | █████████████████████████████████████████████████ 99.8%< 32KiB | █████████████████████████████████████████████████ 99.9%< 64KiB | █████████████████████████████████████████████████ 100.0%

3. 交易調用深度

每筆交易的最大呼叫巢狀深度(每筆交易一個樣本)。

指標價值
總樣本數255,696
敏感0
第50頁1
第75頁2
p90 4
第95頁4
第99頁8
第99.9頁8
最大限度35

分配

0 | ██████████████████████████████████████████████████ 116,269 (45.5%)1 | ██████████████████████████ 61,369 (24.0%)2 | █████████████████ 40,994 (16.0%)4 | ████████████ 29,283 (11.5%)8 | ███ 7,547 (3.0%)16 | 233 (0.1%)32 | 1 (0.0%)

累積分佈

< 1 | ██████████████████████ 45.5%< 2 | ██████████████████████████████████ 69.5%< 4 | ██████████████████████████████████████████ 85.5%< 8 | ████████████████████████████████████████████████ 97.0%< 16 | █████████████████████████████████████████████████ 99.9%< 32 | █████████████████████████████████████████████████ 100.0%

4. 交易峰值堆疊(項)

在交易期間,所有活躍調用幀的峰值聚合堆疊項(每個交易一個樣本)。

指標價值
總樣本數255,696
敏感0
第50頁16
第75頁32
p90 64
第95頁128
第99頁128
第99.9頁256
最大限度664

分配

0 | 153 (0.1%)1 | 0 (0.0%)2 | ██ 6,900 (2.7%)4 | ██ 6,704 (2.6%)8 | ██ 7,128 (2.8%)16 | ██████████████████████████████████████████████████ 140,607 (55.0%)32 | ██████████ 30,782 (12.0%)64 | ████████████████ 45,555 (17.8%)128 | █████ 16,426 (6.4%)256 | 1,434 (0.6%)512 | 7 (0.0%)

累積分佈

< 1 | 0.1%< 4 | █ 2.8%< 8 | ██ 5.4%< 16 | ████ 8.2%< 32 | ███████████████████████████████ 63.2%< 64 | █████████████████████████████████████ 75.2%< 128 | ██████████████████████████████████████████████ 93.0%< 256 | █████████████████████████████████████████████████ 99.4%< 512 | █████████████████████████████████████████████████ 100.0%

5. 事務峰值記憶體(位元組)

事務處理期間所有活動呼叫訊框的峰值總記憶體(每個事務處理一個樣本)。

指標價值
總樣本數255,696
敏感0B
第50頁256B
第75頁1KiB
p90 4KiB
第95頁8KiB
第99頁16KiB
第99.9頁128KiB
最大限度584.2KiB

分配

0B | ███ 6,168 (2.4%)32B | 93 (0.0%)64B | ████ 9,477 (3.7%)128B | ██████████████████████████████████████████████████ 95,450 (37.3%)256B | █████████████████████████████ 56,335 (22.0%)512B | █████ 11,236 (4.4%)1KiB | ██████████ 19,891 (7.8%)2KiB | ████████████ 24,416 (9.5%)4KiB | █████████ 18,152 (7.1%)8KiB | ████ 8,852 (3.5%)16KiB | █ 3,602 (1.4%)32KiB | 1,250 (0.5%)64KiB | 392 (0.2%)128KiB | 247 (0.1%)256KiB | 131 (0.1%)512KiB | 4 (0.0%)

累積分佈

< 1B | █ 2.4%< 128B | ███ 6.2%< 256B | █████████████████████ 43.5%< 512B | ████████████████████████████████ 65.5%< 1KiB | ██████████████████████████████████ 69.9%< 2KiB | ██████████████████████████████████████ 77.7%< 4KiB | ███████████████████████████████████████████ 87.2%< 8KiB | ███████████████████████████████████████████████ 94.3%< 16KiB | ████████████████████████████████████████████████ 97.8%< 32KiB | █████████████████████████████████████████████████ 99.2%< 64KiB | █████████████████████████████████████████████████ 99.7%< 128KiB | █████████████████████████████████████████████████ 99.9%< 512KiB | █████████████████████████████████████████████████ 100.0%

重點總結

  • 堆疊: 88.9% 的 EVM 呼叫使用少於 32 個堆疊項目。 p99 = 32,觀察到的最大值為 651(EVM 限制為 1024)。
  • 記憶體: 90.3% 的 EVM 呼叫使用 < 1 KiB 記憶體。 p99 = 4KiB,觀察到的最大記憶體 = 578.8KiB。
  • 呼叫深度: 45.5% 的交易不進行內部呼叫。 85.5% 的交易深度低於 4。觀察到的最大值 = 35。
  • 發射峰值堆疊: p50 = 16,p99 = 128,最大觀測值為 664。
  • 傳輸峰值記憶體: p50 = 256B,p99 = 16KiB,觀察到的最大值為 584.2KiB。
  • 每次交易的調用次數:中位數 7.7,最小值 1.0,最大值 253.6(按區塊劃分)。

方法論

透過對Zilkworm的 EVM 執行進行檢測收集的資料。

指標

  • 堆疊高度-在單次 EVM 呼叫期間觀察到的 EVM 操作數堆疊項的最大數量。每次調用採集一個樣本。
  • 記憶體大小-單次 EVM 呼叫期間分配的最大 EVM 記憶體(以位元組為單位)。每次呼叫一個樣本。
  • 呼叫深度-事務期間達到的最大 CALL/CREATE 嵌套深度。每個事務一個樣本。
  • 交易峰值堆疊-交易期間所有活躍呼叫幀中堆疊項的峰值總和。每個交易採集一個樣本。
  • 交易峰值記憶體-交易期間所有活動呼叫幀的峰值總記憶體(以位元組為單位)。每個交易採集一個樣本。

HDR直方圖

使用 log2 分桶法將數值記錄到HDR(高動態範圍)直方圖中。這是Gil Tene 的 HdrHistogram的簡化版本,每個 2 的冪對應一個桶子:

  • 桶 0:值 = 0
  • i ( i > 0 ): 值在 [2^( i −1), 2^ i )

這樣就得到了 21 個桶,涵蓋了從 0 到超過 100 萬的值,相對誤差恆定:每個桶跨越 2 倍的範圍。

百分位估計

百分位數(p50、p75、p90、p95、p99、p99.9)是根據直方圖桶計數計算出來的近似值。對於給定的百分位數p ,我們找到累積計數達到p × N (其中N為樣本總數)的第一個桶,並將該桶的下限作為百分位數。這意味著報告的百分位數可能比真實值低最多 2 倍(一個桶的寬度)。最小值和最大值會被精確記錄。


來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論