Skip to content

数据库回调与协程性能

查看 Markdown

ark 私有数据库服务的同等工作量对比:56 组配对配置、336 个独立进程、零错误。每种方式按固定操作数运行三次,使用 Boost.Asio;这里测量 ark 的 database_awaitable、manual_runtime 与任务组接入,不是 arknet 原生协程接口。

图中柱高为三次测量的中位数,短误差线为最小值至最大值;各面板纵轴独立。横轴为连接数/在途请求数。表中变化=(协程中位数/回调中位数−1)×100%。

Redis · TCP

吞吐量

CPU 占用

28 组配置的协程吞吐中位数相对回调变化为 −1.37%~+12.80%;其中 22/28 组的三次测量范围重叠。变化取决于配置,不作显著性结论。

响应时间与进程内存

P99

RSS

P50 和所有指标的精确数值见下方完整表。P99 是每个进程全部请求的第 99 百分位,再对三个进程取中位数;不是把全部进程样本混合计算。RSS 是整个进程生命周期高水位,包含预热与预分配延迟样本;回调方式也创建空闲桥接对象和任务组,不能据此隔离协程帧成本。

全部 28 组配对配置:吞吐、CPU、P50、P99、RSS

吞吐量(ops/s)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 11,246.7 [11,135.8–11,282.4] 11,452.5 [11,451.4–11,495.0] +1.83% 否
64 B 连续 1/4 10,050.3 [9,980.7–10,052.9] 10,087.2 [10,026.9–10,185.9] +0.37% 是
64 B 连续 1/16 10,140.7 [10,071.8–10,172.5] 10,018.4 [9,961.2–10,038.5] −1.21% 否
64 B 连续 1/64 9,823.1 [9,820.9–10,186.9] 10,150.6 [10,110.1–10,177.4] +3.33% 是
64 B 连续 4/4 36,926.1 [36,478.0–36,978.4] 36,975.7 [36,825.5–37,064.4] +0.13% 是
64 B 连续 4/16 36,454.9 [36,394.2–36,962.5] 36,670.6 [33,368.9–37,089.1] +0.59% 是
64 B 连续 4/64 37,176.8 [37,073.8–37,204.7] 36,974.4 [36,690.8–37,059.1] −0.54% 否
64 B 1 ms 1/1 996.7 [992.9–997.7] 999.6 [998.7–999.6] +0.29% 否
64 B 1 ms 1/4 3,688.4 [3,608.7–3,708.9] 3,682.3 [3,659.2–3,773.9] −0.17% 是
64 B 1 ms 1/16 10,665.1 [10,652.5–10,707.6] 10,653.9 [10,653.5–10,684.0] −0.10% 是
64 B 1 ms 1/64 10,622.5 [10,541.9–10,623.1] 10,603.5 [10,382.1–10,651.7] −0.18% 是
64 B 1 ms 4/4 3,994.7 [3,970.2–3,994.9] 3,957.3 [3,928.9–3,998.5] −0.94% 是
64 B 1 ms 4/16 15,524.6 [15,321.4–15,539.1] 15,524.4 [15,407.1–15,539.3] −0.00% 是
64 B 1 ms 4/64 37,282.1 [37,277.3–37,446.7] 37,362.0 [37,276.6–37,364.2] +0.21% 是
4 KiB 连续 1/1 8,638.8 [8,595.2–8,646.6] 8,727.0 [8,668.5–8,758.3] +1.02% 否
4 KiB 连续 1/4 8,059.4 [7,989.3–8,090.7] 8,057.2 [8,040.8–8,099.1] −0.03% 是
4 KiB 连续 1/16 8,020.9 [7,993.5–8,081.1] 8,062.0 [7,987.9–8,191.6] +0.51% 是
4 KiB 连续 1/64 8,041.8 [7,865.1–8,180.0] 8,111.6 [8,095.7–8,112.3] +0.87% 是
4 KiB 连续 4/4 28,169.4 [27,982.5–28,283.1] 28,025.2 [28,017.6–28,232.9] −0.51% 是
4 KiB 连续 4/16 28,159.9 [27,956.3–28,183.8] 27,773.2 [27,438.8–28,205.7] −1.37% 是
4 KiB 连续 4/64 28,126.6 [28,117.0–28,254.4] 28,030.1 [28,021.9–28,340.3] −0.34% 是
4 KiB 1 ms 1/1 994.8 [985.1–997.7] 998.5 [997.7–999.6] +0.38% 是
4 KiB 1 ms 1/4 3,367.5 [3,350.1–3,712.4] 3,798.4 [3,780.8–3,805.5] +12.80% 否
4 KiB 1 ms 1/16 8,268.9 [8,265.8–8,299.8] 8,283.3 [8,251.5–8,316.4] +0.17% 是
4 KiB 1 ms 1/64 8,319.4 [8,269.6–8,349.9] 8,282.6 [8,282.5–8,299.8] −0.44% 是
4 KiB 1 ms 4/4 3,971.5 [3,971.4–3,998.7] 3,978.1 [3,941.0–3,978.2] +0.17% 是
4 KiB 1 ms 4/16 15,180.7 [15,053.6–15,251.5] 15,179.4 [15,025.6–15,206.5] −0.01% 是
4 KiB 1 ms 4/64 28,673.3 [28,472.2–28,674.9] 28,572.1 [28,565.2–28,768.8] −0.35% 是

客户端进程 CPU 占用(%)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 136.69 [136.63–136.88] 137.02 [136.83–137.13] +0.24% 是
64 B 连续 1/4 133.51 [133.36–133.55] 133.44 [133.29–133.55] −0.05% 是
64 B 连续 1/16 133.36 [133.32–133.47] 133.49 [133.31–133.58] +0.09% 是
64 B 连续 1/64 133.41 [133.40–133.49] 133.47 [133.45–133.62] +0.04% 是
64 B 连续 4/4 173.03 [172.38–173.69] 173.98 [173.64–174.44] +0.55% 是
64 B 连续 4/16 173.00 [172.91–173.92] 173.30 [170.50–174.34] +0.18% 是
64 B 连续 4/64 173.10 [172.90–173.97] 174.24 [173.58–174.26] +0.66% 是
64 B 1 ms 1/1 25.03 [24.92–30.35] 20.62 [18.66–28.22] −17.64% 是
64 B 1 ms 1/4 22.46 [22.23–22.81] 21.90 [21.64–23.22] −2.45% 是
64 B 1 ms 1/16 33.38 [33.29–33.60] 33.67 [33.62–33.77] +0.87% 否
64 B 1 ms 1/64 33.54 [33.48–33.67] 33.92 [33.68–34.15] +1.15% 否
64 B 1 ms 4/4 49.98 [34.11–51.44] 48.81 [39.43–52.37] −2.35% 是
64 B 1 ms 4/16 36.23 [36.08–37.20] 37.59 [37.09–38.81] +3.76% 是
64 B 1 ms 4/64 75.73 [75.64–75.86] 76.85 [76.69–77.04] +1.48% 否
4 KiB 连续 1/1 132.16 [132.02–132.25] 132.24 [132.17–132.32] +0.06% 是
4 KiB 连续 1/4 129.72 [129.32–129.81] 129.65 [129.63–129.84] −0.06% 是
4 KiB 连续 1/16 129.64 [129.60–129.76] 129.54 [129.45–129.81] −0.08% 是
4 KiB 连续 1/64 129.59 [129.42–129.71] 129.67 [129.60–129.71] +0.06% 是
4 KiB 连续 4/4 165.68 [165.62–166.73] 166.33 [166.09–166.66] +0.39% 是
4 KiB 连续 4/16 165.73 [165.71–166.65] 166.18 [166.05–166.88] +0.27% 是
4 KiB 连续 4/64 165.66 [165.47–166.70] 166.16 [165.71–166.65] +0.30% 是
4 KiB 1 ms 1/1 29.33 [27.66–31.25] 31.35 [30.69–31.47] +6.91% 是
4 KiB 1 ms 1/4 23.16 [22.95–23.35] 21.94 [21.93–22.05] −5.29% 否
4 KiB 1 ms 1/16 30.26 [30.25–30.43] 30.55 [30.50–30.56] +0.99% 否
4 KiB 1 ms 1/64 30.31 [30.28–30.43] 30.64 [30.49–30.64] +1.09% 否
4 KiB 1 ms 4/4 43.85 [22.55–47.60] 46.84 [45.81–50.67] +6.81% 是
4 KiB 1 ms 4/16 41.01 [40.87–42.25] 42.62 [42.35–46.34] +3.92% 否
4 KiB 1 ms 4/64 69.22 [69.18–69.25] 70.15 [69.96–70.48] +1.35% 否

P50 响应时间(ms)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 0.088 [0.088–0.089] 0.086 [0.086–0.087] −2.22% 否
64 B 连续 1/4 0.397 [0.394–0.400] 0.392 [0.390–0.398] −1.19% 是
64 B 连续 1/16 1.577 [1.573–1.586] 1.596 [1.589–1.606] +1.25% 否
64 B 连续 1/64 6.520 [6.281–6.537] 6.298 [6.255–6.328] −3.41% 是
64 B 连续 4/4 0.108 [0.107–0.109] 0.108 [0.107–0.108] −0.23% 是
64 B 连续 4/16 0.431 [0.430–0.435] 0.431 [0.427–0.449] +0.14% 是
64 B 连续 4/64 1.719 [1.717–1.722] 1.724 [1.720–1.737] +0.29% 是
64 B 1 ms 1/1 0.999 [0.999–0.999] 1.000 [1.000–1.000] +0.10% 否
64 B 1 ms 1/4 1.008 [1.006–1.010] 1.009 [1.002–1.012] +0.09% 是
64 B 1 ms 1/16 1.480 [1.479–1.486] 1.492 [1.490–1.497] +0.80% 否
64 B 1 ms 1/64 5.997 [5.996–6.007] 6.008 [5.997–6.032] +0.18% 是
64 B 1 ms 4/4 0.989 [0.988–0.993] 1.000 [1.000–1.000] +1.13% 否
64 B 1 ms 4/16 0.996 [0.996–0.996] 1.001 [1.000–1.001] +0.46% 否
64 B 1 ms 4/64 1.872 [1.871–1.874] 1.878 [1.874–1.882] +0.28% 是
4 KiB 连续 1/1 0.115 [0.114–0.115] 0.114 [0.114–0.115] −0.62% 是
4 KiB 连续 1/4 0.495 [0.493–0.496] 0.494 [0.492–0.495] −0.21% 是
4 KiB 连续 1/16 1.994 [1.970–1.998] 1.981 [1.951–1.991] −0.66% 是
4 KiB 连续 1/64 7.951 [7.822–8.138] 7.878 [7.877–7.884] −0.92% 是
4 KiB 连续 4/4 0.141 [0.140–0.142] 0.142 [0.141–0.142] +0.59% 是
4 KiB 连续 4/16 0.566 [0.564–0.571] 0.572 [0.566–0.578] +1.11% 是
4 KiB 连续 4/64 2.268 [2.261–2.275] 2.275 [2.257–2.279] +0.29% 是
4 KiB 1 ms 1/1 0.998 [0.998–0.998] 0.998 [0.998–0.999] +0.04% 否
4 KiB 1 ms 1/4 1.082 [0.998–1.190] 1.001 [1.001–1.001] −7.52% 是
4 KiB 1 ms 1/16 1.987 [1.984–1.988] 1.993 [1.984–1.994] +0.30% 是
4 KiB 1 ms 1/64 7.856 [7.802–7.881] 7.865 [7.856–7.882] +0.12% 是
4 KiB 1 ms 4/4 0.991 [0.989–0.995] 0.999 [0.999–0.999] +0.79% 否
4 KiB 1 ms 4/16 0.993 [0.993–0.994] 1.001 [1.001–1.003] +0.81% 否
4 KiB 1 ms 4/64 2.062 [2.054–2.066] 2.072 [2.065–2.086] +0.48% 是

P99 响应时间(ms)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 0.103 [0.101–0.110] 0.099 [0.099–0.099] −3.73% 否
64 B 连续 1/4 0.427 [0.423–0.486] 0.441 [0.424–0.490] +3.27% 是
64 B 连续 1/16 1.662 [1.650–1.734] 1.666 [1.653–1.714] +0.22% 是
64 B 连续 1/64 6.995 [6.628–7.491] 6.572 [6.558–6.987] −6.05% 是
64 B 连续 4/4 0.147 [0.145–0.151] 0.145 [0.145–0.147] −0.82% 是
64 B 连续 4/16 0.613 [0.528–0.664] 0.570 [0.540–1.408] −6.90% 是
64 B 连续 4/64 1.908 [1.896–1.927] 1.944 [1.918–1.955] +1.88% 是
64 B 1 ms 1/1 1.454 [1.443–1.461] 1.157 [1.131–1.408] −20.37% 否
64 B 1 ms 1/4 2.154 [2.126–2.160] 2.129 [2.125–2.158] −1.17% 是
64 B 1 ms 1/16 2.420 [2.418–2.462] 2.441 [2.415–2.460] +0.86% 是
64 B 1 ms 1/64 7.004 [7.001–7.175] 7.063 [6.988–7.539] +0.84% 是
64 B 1 ms 4/4 1.443 [1.441–1.453] 1.449 [1.446–1.497] +0.40% 是
64 B 1 ms 4/16 2.005 [2.001–2.138] 2.035 [1.996–2.138] +1.50% 是
64 B 1 ms 4/64 2.470 [2.457–2.504] 2.473 [2.456–2.473] +0.11% 是
4 KiB 连续 1/1 0.130 [0.129–0.134] 0.128 [0.124–0.129] −1.54% 否
4 KiB 连续 1/4 0.521 [0.520–0.587] 0.533 [0.520–0.549] +2.31% 是
4 KiB 连续 1/16 2.137 [2.129–2.235] 2.053 [2.038–2.296] −3.93% 是
4 KiB 连续 1/64 8.281 [8.188–8.620] 8.219 [8.120–8.800] −0.76% 是
4 KiB 连续 4/4 0.182 [0.182–0.188] 0.182 [0.182–0.184] −0.09% 是
4 KiB 连续 4/16 0.677 [0.676–0.683] 0.733 [0.658–0.738] +8.30% 是
4 KiB 连续 4/64 2.520 [2.464–2.623] 2.503 [2.447–2.588] −0.65% 是
4 KiB 1 ms 1/1 1.457 [1.455–1.469] 1.431 [1.427–1.456] −1.79% 是
4 KiB 1 ms 1/4 2.214 [2.134–2.229] 2.084 [2.054–2.103] −5.86% 否
4 KiB 1 ms 1/16 2.768 [2.754–2.808] 2.751 [2.700–2.787] −0.60% 是
4 KiB 1 ms 1/64 8.478 [8.450–8.553] 8.474 [8.474–8.483] −0.05% 是
4 KiB 1 ms 4/4 1.462 [1.033–1.479] 1.469 [1.467–1.486] +0.46% 是
4 KiB 1 ms 4/16 2.080 [2.041–2.113] 2.055 [2.039–2.070] −1.22% 是
4 KiB 1 ms 4/64 3.325 [3.320–3.343] 3.336 [3.328–3.350] +0.33% 是

进程峰值 RSS(MiB)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 5.594 [5.594–5.609] 5.625 [5.563–5.656] +0.56% 是
64 B 连续 1/4 5.609 [5.594–5.609] 5.641 [5.609–5.656] +0.56% 是
64 B 连续 1/16 5.609 [5.594–5.641] 5.641 [5.641–5.656] +0.56% 是
64 B 连续 1/64 5.625 [5.609–5.656] 5.781 [5.766–5.797] +2.78% 否
64 B 连续 4/4 5.906 [5.891–5.969] 5.953 [5.938–6.000] +0.79% 是
64 B 连续 4/16 5.953 [5.906–5.984] 5.969 [5.953–5.969] +0.26% 是
64 B 连续 4/64 5.953 [5.953–5.969] 6.125 [6.063–6.125] +2.89% 否
64 B 1 ms 1/1 5.531 [5.516–5.531] 5.563 [5.547–5.578] +0.56% 否
64 B 1 ms 1/4 5.563 [5.547–5.563] 5.563 [5.563–5.594] +0.00% 是
64 B 1 ms 1/16 5.547 [5.531–5.578] 5.641 [5.625–5.656] +1.69% 否
64 B 1 ms 1/64 5.563 [5.547–5.609] 5.734 [5.703–5.750] +3.09% 否
64 B 1 ms 4/4 5.609 [5.609–5.609] 5.656 [5.656–5.672] +0.84% 否
64 B 1 ms 4/16 5.719 [5.703–5.750] 5.781 [5.766–5.797] +1.09% 否
64 B 1 ms 4/64 5.750 [5.750–5.766] 5.891 [5.875–5.906] +2.45% 否
4 KiB 连续 1/1 5.641 [5.625–5.641] 5.672 [5.656–5.688] +0.55% 否
4 KiB 连续 1/4 5.672 [5.656–5.688] 5.750 [5.750–5.750] +1.38% 否
4 KiB 连续 1/16 5.813 [5.813–5.844] 5.859 [5.844–5.875] +0.81% 是
4 KiB 连续 1/64 6.516 [6.516–6.531] 6.641 [6.641–6.672] +1.92% 否
4 KiB 连续 4/4 6.094 [6.031–6.141] 6.156 [6.125–6.172] +1.03% 是
4 KiB 连续 4/16 6.188 [6.172–6.203] 6.250 [6.219–6.266] +1.01% 否
4 KiB 连续 4/64 6.875 [6.859–6.891] 7.016 [6.984–7.016] +2.05% 否
4 KiB 1 ms 1/1 5.547 [5.531–5.578] 5.594 [5.563–5.609] +0.85% 是
4 KiB 1 ms 1/4 5.609 [5.609–5.609] 5.688 [5.688–5.688] +1.39% 否
4 KiB 1 ms 1/16 5.953 [5.922–5.984] 5.969 [5.953–5.984] +0.26% 是
4 KiB 1 ms 1/64 6.453 [6.453–6.500] 6.609 [6.578–6.625] +2.42% 否
4 KiB 1 ms 4/4 5.734 [5.734–5.750] 5.781 [5.766–5.797] +0.82% 否
4 KiB 1 ms 4/16 6.109 [6.109–6.109] 6.172 [6.156–6.219] +1.02% 否
4 KiB 1 ms 4/64 6.906 [6.906–6.938] 7.047 [7.016–7.063] +2.04% 否

MySQL · TLS

吞吐量

CPU 占用

28 组配置的协程吞吐中位数相对回调变化为 −3.01%~+0.81%;其中 24/28 组的三次测量范围重叠。变化取决于配置,不作显著性结论。

响应时间与进程内存

P99

RSS

P50 和所有指标的精确数值见下方完整表。P99 是每个进程全部请求的第 99 百分位,再对三个进程取中位数;不是把全部进程样本混合计算。RSS 是整个进程生命周期高水位,包含预热与预分配延迟样本;回调方式也创建空闲桥接对象和任务组,不能据此隔离协程帧成本。

全部 28 组配对配置:吞吐、CPU、P50、P99、RSS

吞吐量(ops/s)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 4,994.9 [4,973.6–5,006.5] 4,933.1 [4,923.3–4,945.5] −1.24% 否
64 B 连续 1/4 4,720.8 [4,720.7–4,731.6] 4,601.0 [4,564.7–4,609.8] −2.54% 否
64 B 连续 1/16 4,665.5 [4,663.5–4,708.9] 4,555.6 [4,555.6–4,595.7] −2.36% 否
64 B 连续 1/64 4,552.4 [4,538.2–4,590.4] 4,550.3 [4,485.9–4,557.3] −0.04% 是
64 B 连续 4/4 14,894.2 [14,845.6–14,913.4] 14,833.0 [14,804.0–14,877.7] −0.41% 是
64 B 连续 4/16 15,124.9 [15,071.7–15,140.7] 15,118.2 [14,588.3–15,124.7] −0.04% 是
64 B 连续 4/64 15,067.2 [14,991.9–15,193.1] 15,127.0 [15,095.0–15,139.3] +0.40% 是
64 B 1 ms 1/1 991.9 [979.5–999.7] 991.0 [986.2–996.7] −0.10% 是
64 B 1 ms 1/4 3,564.0 [3,511.9–3,698.4] 3,517.3 [3,434.8–3,530.0] −1.31% 是
64 B 1 ms 1/16 4,610.1 [4,528.9–4,610.7] 4,599.6 [4,594.7–4,602.0] −0.23% 是
64 B 1 ms 1/64 4,594.4 [4,584.8–4,600.2] 4,589.9 [4,508.3–4,594.8] −0.10% 是
64 B 1 ms 4/4 3,971.5 [3,967.3–3,975.4] 3,986.9 [3,940.9–3,988.1] +0.39% 是
64 B 1 ms 4/16 13,798.9 [13,727.5–13,821.7] 13,832.0 [13,750.5–13,860.8] +0.24% 是
64 B 1 ms 4/64 15,566.6 [15,522.0–15,613.4] 15,499.1 [15,478.4–15,611.8] −0.43% 是
4 KiB 连续 1/1 4,378.3 [4,325.6–4,387.1] 4,379.2 [4,316.8–4,391.7] +0.02% 是
4 KiB 连续 1/4 4,212.4 [4,198.4–4,214.1] 4,183.9 [4,181.8–4,185.2] −0.68% 否
4 KiB 连续 1/16 4,140.9 [4,114.9–4,190.4] 4,174.5 [4,170.5–4,181.2] +0.81% 是
4 KiB 连续 1/64 4,168.6 [4,151.7–4,217.9] 4,171.5 [4,163.9–4,182.4] +0.07% 是
4 KiB 连续 4/4 13,350.5 [13,131.8–13,479.5] 13,403.4 [13,394.9–13,404.3] +0.40% 是
4 KiB 连续 4/16 13,435.9 [13,407.3–13,627.2] 13,463.4 [13,439.6–13,485.2] +0.20% 是
4 KiB 连续 4/64 13,447.9 [13,388.2–13,455.6] 13,488.1 [13,153.8–13,569.0] +0.30% 是
4 KiB 1 ms 1/1 994.8 [994.8–995.9] 993.9 [989.0–994.9] −0.09% 是
4 KiB 1 ms 1/4 3,614.4 [3,550.8–3,630.1] 3,585.1 [3,563.8–3,639.8] −0.81% 是
4 KiB 1 ms 1/16 4,360.5 [4,251.8–4,432.6] 4,229.2 [4,152.5–4,278.1] −3.01% 是
4 KiB 1 ms 1/64 4,131.3 [4,126.4–4,182.6] 4,135.8 [4,133.0–4,144.4] +0.11% 是
4 KiB 1 ms 4/4 3,988.1 [3,967.9–3,999.7] 3,979.6 [3,959.2–3,990.9] −0.21% 是
4 KiB 1 ms 4/16 13,282.9 [13,220.8–13,336.3] 13,250.1 [13,210.9–13,261.1] −0.25% 是
4 KiB 1 ms 4/64 13,717.2 [13,669.3–13,750.5] 13,716.9 [13,716.2–13,773.8] −0.00% 是

客户端进程 CPU 占用(%)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 125.29 [124.89–125.30] 124.06 [123.67–124.34] −0.98% 否
64 B 连续 1/4 124.85 [124.81–125.02] 122.95 [122.48–123.39] −1.53% 否
64 B 连续 1/16 123.91 [123.79–124.51] 122.34 [122.15–122.80] −1.26% 否
64 B 连续 1/64 122.25 [122.03–123.30] 122.21 [121.47–123.36] −0.04% 是
64 B 连续 4/4 150.86 [150.83–150.93] 151.14 [150.91–151.42] +0.18% 是
64 B 连续 4/16 151.53 [151.27–151.69] 151.64 [151.60–152.16] +0.07% 是
64 B 连续 4/64 151.17 [151.09–151.21] 151.41 [151.20–151.47] +0.15% 是
64 B 1 ms 1/1 25.59 [16.56–27.78] 25.56 [25.18–26.51] −0.11% 是
64 B 1 ms 1/4 21.23 [21.01–21.36] 21.74 [21.21–21.99] +2.39% 是
64 B 1 ms 1/16 24.43 [24.14–24.95] 24.73 [24.16–25.07] +1.24% 是
64 B 1 ms 1/64 24.17 [23.84–24.48] 24.30 [23.18–24.36] +0.55% 是
64 B 1 ms 4/4 42.95 [42.48–45.34] 46.92 [43.18–47.74] +9.24% 是
64 B 1 ms 4/16 46.62 [46.25–46.73] 47.05 [47.02–47.09] +0.94% 否
64 B 1 ms 4/64 53.89 [53.64–54.32] 54.61 [54.52–54.64] +1.33% 否
4 KiB 连续 1/1 123.99 [123.50–124.76] 122.58 [122.54–123.63] −1.14% 是
4 KiB 连续 1/4 123.16 [122.86–123.54] 122.23 [122.04–122.62] −0.76% 否
4 KiB 连续 1/16 122.82 [122.71–123.12] 121.95 [121.76–122.26] −0.71% 否
4 KiB 连续 1/64 124.23 [122.94–124.29] 124.02 [121.71–124.28] −0.17% 是
4 KiB 连续 4/4 152.62 [152.56–153.20] 152.14 [151.88–152.31] −0.31% 否
4 KiB 连续 4/16 152.93 [152.89–152.96] 152.71 [152.28–152.76] −0.14% 否
4 KiB 连续 4/64 151.33 [151.28–151.76] 151.49 [150.94–151.83] +0.11% 是
4 KiB 1 ms 1/1 25.12 [24.23–25.24] 27.20 [26.49–28.60] +8.27% 否
4 KiB 1 ms 1/4 21.24 [21.17–21.33] 21.70 [21.66–21.74] +2.18% 否
4 KiB 1 ms 1/16 24.89 [24.57–25.22] 25.28 [23.68–25.55] +1.58% 是
4 KiB 1 ms 1/64 24.30 [23.91–25.06] 24.30 [24.18–24.36] −0.00% 是
4 KiB 1 ms 4/4 41.86 [40.43–44.90] 46.02 [30.98–47.95] +9.94% 是
4 KiB 1 ms 4/16 52.96 [52.46–53.11] 53.70 [53.46–53.89] +1.40% 否
4 KiB 1 ms 4/64 54.93 [54.80–55.47] 55.57 [55.37–56.03] +1.16% 是

P50 响应时间(ms)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 0.198 [0.197–0.198] 0.203 [0.202–0.203] +2.62% 否
64 B 连续 1/4 0.845 [0.844–0.845] 0.870 [0.869–0.879] +3.00% 否
64 B 连续 1/16 3.428 [3.393–3.429] 3.522 [3.489–3.526] +2.75% 否
64 B 连续 1/64 14.066 [13.923–14.085] 14.078 [14.072–14.089] +0.08% 是
64 B 连续 4/4 0.267 [0.267–0.268] 0.268 [0.267–0.269] +0.14% 是
64 B 连续 4/16 1.056 [1.056–1.061] 1.058 [1.058–1.071] +0.11% 是
64 B 连续 4/64 4.238 [4.206–4.257] 4.226 [4.226–4.238] −0.29% 是
64 B 1 ms 1/1 0.999 [0.999–1.000] 1.000 [1.000–1.000] +0.04% 否
64 B 1 ms 1/4 1.000 [0.999–1.001] 1.003 [1.002–1.012] +0.28% 否
64 B 1 ms 1/16 3.416 [3.405–3.528] 3.434 [3.427–3.440] +0.54% 是
64 B 1 ms 1/64 13.981 [13.966–13.982] 13.984 [13.978–14.082] +0.02% 是
64 B 1 ms 4/4 0.994 [0.994–0.995] 1.000 [0.999–1.000] +0.54% 否
64 B 1 ms 4/16 1.027 [1.025–1.031] 1.029 [1.026–1.031] +0.26% 是
64 B 1 ms 4/64 4.014 [4.012–4.023] 4.025 [4.019–4.026] +0.27% 是
4 KiB 连续 1/1 0.226 [0.226–0.227] 0.228 [0.227–0.228] +0.57% 是
4 KiB 连续 1/4 0.949 [0.948–0.952] 0.955 [0.954–0.956] +0.69% 否
4 KiB 连续 1/16 3.826 [3.818–3.831] 3.829 [3.825–3.829] +0.07% 是
4 KiB 连续 1/64 15.360 [15.324–15.380] 15.364 [15.338–15.394] +0.03% 是
4 KiB 连续 4/4 0.298 [0.295–0.298] 0.297 [0.297–0.297] −0.18% 是
4 KiB 连续 4/16 1.186 [1.169–1.191] 1.185 [1.183–1.188] −0.12% 是
4 KiB 连续 4/64 4.745 [4.727–4.774] 4.737 [4.713–4.783] −0.19% 是
4 KiB 1 ms 1/1 0.998 [0.998–0.998] 0.999 [0.999–0.999] +0.03% 否
4 KiB 1 ms 1/4 0.998 [0.998–0.999] 1.001 [1.000–1.001] +0.28% 否
4 KiB 1 ms 1/16 3.822 [3.717–3.890] 3.912 [3.872–3.940] +2.38% 是
4 KiB 1 ms 1/64 15.461 [15.167–15.465] 15.341 [15.333–15.449] −0.78% 是
4 KiB 1 ms 4/4 0.994 [0.992–0.994] 0.999 [0.998–1.000] +0.52% 否
4 KiB 1 ms 4/16 1.036 [1.034–1.041] 1.057 [1.047–1.059] +1.96% 否
4 KiB 1 ms 4/64 4.837 [4.824–4.846] 4.819 [4.815–4.858] −0.37% 是

P99 响应时间(ms)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 0.221 [0.221–0.227] 0.222 [0.221–0.223] +0.66% 是
64 B 连续 1/4 0.904 [0.898–0.907] 0.921 [0.915–0.924] +1.82% 否
64 B 连续 1/16 3.580 [3.575–3.581] 3.619 [3.616–3.634] +1.07% 否
64 B 连续 1/64 15.392 [14.781–15.411] 15.160 [14.264–21.343] −1.51% 是
64 B 连续 4/4 0.328 [0.322–0.332] 0.338 [0.335–0.350] +3.06% 否
64 B 连续 4/16 1.217 [1.190–1.224] 1.224 [1.193–1.879] +0.59% 是
64 B 连续 4/64 4.789 [4.613–4.814] 4.598 [4.593–4.619] −3.98% 是
64 B 1 ms 1/1 1.492 [1.292–1.499] 1.490 [1.474–1.824] −0.11% 是
64 B 1 ms 1/4 2.112 [2.104–2.185] 2.143 [2.126–2.181] +1.50% 是
64 B 1 ms 1/16 4.441 [4.418–4.487] 4.453 [4.439–4.457] +0.27% 是
64 B 1 ms 1/64 15.087 [15.042–15.120] 15.090 [15.067–15.430] +0.02% 是
64 B 1 ms 4/4 1.484 [1.482–1.485] 1.490 [1.481–1.872] +0.42% 是
64 B 1 ms 4/16 2.304 [2.288–2.307] 2.273 [2.251–2.341] −1.34% 是
64 B 1 ms 4/64 5.194 [5.178–5.209] 5.246 [5.184–5.277] +1.01% 是
4 KiB 连续 1/1 0.255 [0.254–0.381] 0.248 [0.248–0.319] −2.74% 是
4 KiB 连续 1/4 0.996 [0.993–0.999] 0.993 [0.990–0.993] −0.38% 否
4 KiB 连续 1/16 4.954 [3.970–5.626] 3.976 [3.904–4.056] −19.75% 是
4 KiB 连续 1/64 16.141 [15.818–16.351] 16.032 [15.657–16.246] −0.67% 是
4 KiB 连续 4/4 0.379 [0.376–0.436] 0.374 [0.365–0.377] −1.18% 是
4 KiB 连续 4/16 1.359 [1.336–1.394] 1.354 [1.354–1.362] −0.37% 是
4 KiB 连续 4/64 5.347 [5.131–5.650] 5.086 [4.981–6.385] −4.87% 是
4 KiB 1 ms 1/1 1.482 [1.481–1.485] 1.486 [1.483–1.923] +0.25% 是
4 KiB 1 ms 1/4 2.240 [2.237–2.240] 2.238 [2.234–2.244] −0.09% 是
4 KiB 1 ms 1/16 4.620 [4.514–4.743] 4.759 [4.683–5.035] +3.01% 是
4 KiB 1 ms 1/64 16.466 [16.418–16.468] 16.476 [16.457–16.951] +0.06% 是
4 KiB 1 ms 4/4 1.482 [1.479–1.513] 1.498 [1.489–1.557] +1.13% 是
4 KiB 1 ms 4/16 2.382 [2.350–2.401] 2.368 [2.363–2.371] −0.57% 是
4 KiB 1 ms 4/64 5.449 [5.436–5.449] 5.451 [5.448–5.452] +0.04% 是

进程峰值 RSS(MiB)

消息体 更新间隔 连接/在途 回调中位数 [范围] 协程中位数 [范围] 协程变化 范围重叠
64 B 连续 1/1 8.219 [8.219–8.266] 8.328 [8.250–8.375] +1.33% 是
64 B 连续 1/4 8.281 [8.266–8.281] 8.297 [8.266–8.375] +0.19% 是
64 B 连续 1/16 8.281 [8.172–8.297] 8.406 [8.344–8.406] +1.51% 否
64 B 连续 1/64 8.391 [8.344–8.422] 8.609 [8.594–8.688] +2.61% 否
64 B 连续 4/4 9.125 [9.125–9.297] 9.234 [9.203–9.234] +1.20% 是
64 B 连续 4/16 9.172 [9.141–9.234] 9.250 [9.219–9.297] +0.85% 是
64 B 连续 4/64 9.234 [9.219–9.313] 9.500 [9.406–9.500] +2.88% 否
64 B 1 ms 1/1 8.141 [8.141–8.188] 8.219 [8.219–8.281] +0.96% 否
64 B 1 ms 1/4 8.203 [8.188–8.234] 8.266 [8.188–8.266] +0.76% 是
64 B 1 ms 1/16 8.203 [8.125–8.219] 8.375 [8.297–8.375] +2.10% 否
64 B 1 ms 1/64 8.313 [8.281–8.313] 8.531 [8.500–8.594] +2.63% 否
64 B 1 ms 4/4 8.828 [8.781–8.828] 8.828 [8.781–9.000] +0.00% 是
64 B 1 ms 4/16 8.969 [8.938–8.984] 9.031 [8.984–9.078] +0.70% 是
64 B 1 ms 4/64 9.000 [8.984–9.078] 9.359 [9.281–9.375] +3.99% 否
4 KiB 连续 1/1 8.391 [8.344–8.438] 8.469 [8.406–8.516] +0.93% 是
4 KiB 连续 1/4 8.359 [8.344–8.438] 8.500 [8.406–8.516] +1.68% 是
4 KiB 连续 1/16 8.688 [8.672–8.781] 8.781 [8.750–8.813] +1.08% 是
4 KiB 连续 1/64 9.578 [9.531–9.641] 9.859 [9.844–9.875] +2.94% 否
4 KiB 连续 4/4 9.594 [9.344–9.641] 9.547 [9.516–9.578] −0.49% 是
4 KiB 连续 4/16 9.766 [9.688–9.797] 9.859 [9.797–9.906] +0.96% 是
4 KiB 连续 4/64 10.672 [10.656–10.703] 10.891 [10.828–10.953] +2.05% 否
4 KiB 1 ms 1/1 8.313 [8.234–8.359] 8.359 [8.359–8.406] +0.56% 是
4 KiB 1 ms 1/4 8.406 [8.344–8.453] 8.438 [8.375–8.578] +0.37% 是
4 KiB 1 ms 1/16 8.641 [8.625–8.719] 8.797 [8.781–8.797] +1.81% 否
4 KiB 1 ms 1/64 9.547 [9.531–9.563] 9.797 [9.734–9.859] +2.62% 否
4 KiB 1 ms 4/4 9.141 [9.063–9.266] 9.203 [9.172–9.203] +0.68% 是
4 KiB 1 ms 4/16 9.688 [9.672–9.688] 9.813 [9.734–9.828] +1.29% 否
4 KiB 1 ms 4/64 10.531 [10.484–10.594] 10.750 [10.609–10.766] +2.08% 否

测量口径

项目 配置
机器 Mac mini Mac16,11 · Apple M4 Pro · 14 核(10 性能+4 能效)· 48 GiB
系统/编译器 macOS 27.0.1(26A434)· LLVM 22.1.7 · Release,无 Sanitizer
依赖/数据库 Boost 1.90.0 · OpenSSL 3.6.4 · MySQL Community 8.4.11 · Redis 7.4.2
执行方式 一个所有者线程+连接池共享一个 IO context/工作线程;连接数 1/4 不改变线程数;单机 IPv4 回环
操作 Redis 单条二进制 ECHO;MySQL 单条文本 SELECT,验证 TLS;64 B/4 KiB
更新与重复 连续轮询或 1 ms 间隔;回调/协程顺序交替;每组每种方式三次独立进程
数量 测量 5,044,224 次,预热 768,000 次;每进程固定次数,非固定时长
CPU 整个客户端进程,100%=一个逻辑核心;不包含数据库进程
响应时间 所有者提交到所有者收到结果,包含连接租约/重置等待、IO、数据库和更新间隔
UTC 时间 2026-10-15T20:22:07Z~2026-10-15T20:31:57Z
源码 ark ab6f82f320a472869a06e155c2c73c3d7728354b;arknet 2aa5bc0ef7d383d8cfbc04520f3b952fa27c5fbd

单次测量区间为 0.383~3.046 秒,其中 80/336 个区间短于 1 秒;这些结果不单独作为选型结论。连接、运行时构建和预热不计入测量;每请求的内容校验、结果所有权、后续提交以及协程任务和桥接处理计入墙钟时间/CPU。更新间隔不追赶错过的时钟刻度。每请求完成后归还租约并按原生池规则重置;这不是持有连接后连续发送的原生客户端峰值测试,也不是协议流水线测试。

各组固定操作数与原始证据
更新间隔 连接/在途 每进程测量数 每进程预热数
连续 1/1 10,000 1,000
连续 1/4 10,000 1,000
连续 1/16 10,000 1,000
连续 1/64 10,000 1,000
连续 4/4 40,000 4,000
连续 4/16 40,000 4,000
连续 4/64 40,000 4,000
1 ms 1/1 1,024 1,000
1 ms 1/4 4,096 1,000
1 ms 1/16 4,096 1,000
1 ms 1/64 4,096 1,000
1 ms 4/4 4,096 4,000
1 ms 4/16 16,384 4,000
1 ms 4/64 16,384 4,000

原始记录与源码/程序/依赖哈希保留在本机独立测量目录,未加入源码仓库,也未提供下载。生成器逐条比对 336 份进程输出、退出码和标准错误,再计算全部 56 组中位数、范围与变化。正式 C++ 基准用法包含编译、单项运行与指标定义。

  • 哈希锁仅覆盖记录的 2,436 个输入;MySQL 的 @loader_path 相对动态库未形成完整的传递依赖哈希闭包。
  • 记录的 ninja -n 输出含 CMake 重新生成提示;没有执行重新构建,也未事后补造测前哈希。上述限制不表示已发现依赖变化。

这些闭合循环、本机短时数据不证明饱和容量、跨主机表现、生产时长稳定性或集群 PCU。

导航

输入关键词开始搜索…

↑↓ 移动↵ 选择Esc 关闭