chore: baseline snapshot before moderation-strictness feature
Repo .git was damaged (refs/ missing, index truncated, object store near-empty). Repaired via git init (rebuilt refs), stale index preserved as .git/index.corrupt-20260910.bak, then full worktree committed as a rollback baseline.
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# bench-cdn.sh — UIkit CDN 测速脚本(国内 / 海外双视角)
|
||||
#
|
||||
# 用途:对比"自建 R2 自托管 uikit"与"公共 CDN (cdnjs.snrat.com)"的加载速度,
|
||||
# 用于验证/复测 2026-09-05 的 CDN 迁移是否持续生效。
|
||||
#
|
||||
# 用法:
|
||||
# bash dev/bench-cdn.sh cn # 国内本机:每资源 5 次全量下载取中位
|
||||
# bash dev/bench-cdn.sh global # 海外:check-host.net 多区域节点 (p50/p90)
|
||||
#
|
||||
# 数据结论参考(2026-09-05 基线,国内中位):
|
||||
# css R2 0.864s -> snrat 0.200s (4.3x)
|
||||
# js R2 0.796s -> snrat 0.163s (4.9x)
|
||||
# icons R2 0.824s -> snrat 0.177s (4.7x)
|
||||
# 海外(check-host p50):css 打平;js R2 372ms vs snrat 647ms (R2 略快)
|
||||
# 结论:站点访客以国内为主 -> snrat 净收益大;海外属轻微下降可接受。
|
||||
# ============================================================================
|
||||
|
||||
OLD_CSS="https://r2.337845818.best/tamabox/cdn/expire-1-y/uikit/3.3.3/css/modify-black-font/uikit.min.css"
|
||||
NEW_CSS="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/css/uikit.min.css"
|
||||
OLD_JS="https://r2.337845818.best/tamabox/cdn/lib/uikit/3.3.3/js/uikit.min.js"
|
||||
NEW_JS="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/js/uikit.min.js"
|
||||
OLD_ICONS="https://r2.337845818.best/tamabox/cdn/lib/uikit/3.3.3/js/uikit-icons.min.js"
|
||||
NEW_ICONS="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/js/uikit-icons.min.js"
|
||||
|
||||
# ---------- 国内:全量下载计时 ----------
|
||||
bench_cn() {
|
||||
echo "== 国内本机:每资源 5 次全量下载(秒),取中位 =="
|
||||
local pairs=(
|
||||
"OLD-css (R2 modify):$OLD_CSS"
|
||||
"NEW-css (snrat) :$NEW_CSS"
|
||||
"OLD-js (R2) :$OLD_JS"
|
||||
"NEW-js (snrat) :$NEW_JS"
|
||||
"OLD-icons (R2) :$OLD_ICONS"
|
||||
"NEW-icons (snrat) :$NEW_ICONS"
|
||||
)
|
||||
for entry in "${pairs[@]}"; do
|
||||
local name="${entry%%:*}"; local url="${entry#*:}"
|
||||
local vals=()
|
||||
for i in 1 2 3 4 5; do
|
||||
vals+=("$(curl -sS -o /dev/null -w '%{time_total}' --max-time 20 "$url" 2>/dev/null)")
|
||||
done
|
||||
local sorted=($(printf '%s\n' "${vals[@]}" | sort -n))
|
||||
local med="${sorted[2]}"
|
||||
printf '%-20s : [%s] 中位=%ss\n' "$name" "${vals[*]}" "$med"
|
||||
done
|
||||
}
|
||||
|
||||
# ---------- 海外:check-host.net 多区域节点 ----------
|
||||
probe_global() {
|
||||
local name="$1" url="$2"
|
||||
local enc
|
||||
enc=$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=''))" "$url")
|
||||
local rid
|
||||
rid=$(curl -sS -H "Accept: application/json" \
|
||||
"https://check-host.net/check-http?host=$enc&max_nodes=12" 2>/dev/null \
|
||||
| python3 -c "import sys,json;print(json.load(sys.stdin).get('request_id',''))")
|
||||
[ -z "$rid" ] && { echo "$name: 请求失败"; return; }
|
||||
sleep 8
|
||||
curl -sS -H "Accept: application/json" "https://check-host.net/check-result/$rid" 2>/dev/null \
|
||||
| python3 -c "
|
||||
import sys,json,statistics
|
||||
d=json.load(sys.stdin)
|
||||
ms=[]
|
||||
for node,arr in (d or {}).items():
|
||||
if not arr or not arr[0]: continue
|
||||
r=arr[0]
|
||||
if len(r)>3 and str(r[3]).startswith('2') and isinstance(r[1],(int,float)):
|
||||
ms.append(r[1]*1000)
|
||||
if ms:
|
||||
ms.sort()
|
||||
print(f'$name | n={len(ms)} | min={ms[0]:.0f} | p50={statistics.median(ms):.0f} | p90={ms[int(len(ms)*0.9)-1]:.0f} | max={ms[-1]:.0f} ms')
|
||||
else:
|
||||
print(f'$name | 无有效节点')
|
||||
"
|
||||
}
|
||||
|
||||
bench_global() {
|
||||
echo "== 海外:check-host.net 多区域节点探测(HTTP 200 的耗时统计)=="
|
||||
probe_global "OLD css (R2 modify)" "$OLD_CSS"
|
||||
probe_global "NEW css (snrat)" "$NEW_CSS"
|
||||
probe_global "OLD js (R2)" "$OLD_JS"
|
||||
probe_global "NEW js (snrat)" "$NEW_JS"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
cn) bench_cn ;;
|
||||
global) bench_global ;;
|
||||
*)
|
||||
echo "用法: bash dev/bench-cdn.sh {cn|global}"
|
||||
echo " cn = 国内本机全量下载测速"
|
||||
echo " global = 海外 check-host.net 多区域探测"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user