LagScope WINDOWS · macOS · LINUX MIT

卡的時候,
它告訴你是誰的錯

遊戲突然延遲?直播一直轉圈?影片卡住不動? LagScope 幫你找出問題是在你的 Wi-Fi、家裡的網路、電信商,還是對方的伺服器。

它是一個一直開著的桌面小程式,不是網頁測速——因為卡頓通常不是「現在測一次」看得出來的。

Windows 有安裝版和免安裝版。安裝版之後會自己更新,不用再回來抓。

總延遲
從伺服器到你眼睛看到畫面,總共慢了多久
串流
資料在網路上跑掉的時間
顯示
你電腦把畫面畫出來的時間
P95
比較糟的那些時候大概有多糟(不是最糟的一次,是常態的壞情況)

平常它就是桌面角落這一小塊,可以點穿、可以鎖住位置。托盤圖示直接把數字畫在上面。

下載之後你會看到什麼

這些是程式真正的畫面

不是示意圖,是把程式跑起來直接截的。

真的在跑:懸浮窗疊在一場 B 站直播上,監視官方客戶端本身。 數字每兩秒更新一次——中間那次跳到 148 ms 不是剪接,就是當下真的卡了一下。 畫面裡的彈幕和觀眾名稱已經模糊處理,聲音已移除。
LagScope 的延遲歷史視窗:走勢圖上早上九點有一段明顯的延遲飆高,
                  下面列出建議做什麼,以及各個 CDN 節點的平均延遲比較。
延遲歷史:早上九點那一段明顯飆高,圖上橘色小格是卡頓發生的時刻。 下面直接給你「該怎麼辦」,再下面是你被分到哪些節點—— 這台機器有 35% 的時間在慢的那個上面,慢了 112 ms。
LagScope 的懸浮視窗:網路延遲 39 毫秒,下面同時顯示路由器 2 毫秒、
                  DNS 28 毫秒都是綠色,Discord 語音 180 毫秒是紅色。
懸浮視窗:主要數字之外,還能同時掛著路由器和 DNS。 它們是綠的、只有 Discord 是紅的——一眼就知道問題不在你家
核心觀念

不是你的頻寬,
是你被分到哪台機器。

「測速跑到 300 Mbps,B 站還是卡」是很常見的抱怨,而且測速這件事回答不了它。 卡頓來自延遲抖動和丟包,不是頻寬不足——更多時候,來自 CDN 排程器把你丟到哪一個節點。 所以 LagScope 每一分鐘都會記下當下服務你的是哪一台,事後就能這樣比:

節點影響平均延遲佔多少時間
upos-sz-mirrorhw.bilivideo.com華為雲 CDN 幾乎不卡 67 ms33%
cn-hbyc-ct-01.bilivideo.com宜昌 · 中國電信 卡頓主因 160 ms58%
xy118x123x45x67xy.mcdn.bilivideo.cnPCDN 邊緣節點(別人家的寬頻) 很慢,但待得少 300 ms8%

主機名不是亂碼,它自己就寫了答案:cn 是中國大陸、hbyc 是湖北宜昌、 ct 是中國電信。LagScope 直接翻出來。認不出來的代碼它會原樣印出, 不會編一個看起來很像的城市名——因為會有人照著它去做決定。

它指的是「最花你時間的那個」,不是「最慢的那個」。上面那個 PCDN 節點雖然最慢, 但你只在上面待 8%;真正在拖你的是 160 ms 卻佔了 58% 時間的那個。

它回答哪些問題

從「現在怎樣」到「總是這樣嗎」

現在多慢?

懸浮視窗顯示總延遲,並拆成串流延遲和顯示延遲。B 站直播量的是離直播邊緣多遠; 一般影片量起播延遲加頻寬餘量。也能量任何一個會連網的程式,或你自己填的位址。

是誰的錯?

一鍵拆出你 → 路由器 → 第一跳 → 目標各段的延遲和丟包,直接說該怪哪一段。 卡頓時會自動在背景跑一次精簡版,把結論記在那一分鐘上。

什麼時候壞的?

每分鐘存一行摘要,保留七天,關掉程式也不會丟。走勢圖看得出「昨晚九點特別卡」, 還能匯出成一個自包含的 HTML 報告寄給客服。

總是這樣嗎?

按星期幾 × 幾點分組,找出有沒有時段性。「沒有時段性」也是一個真的答案—— 它排掉了晚尖峰壅塞這一整類原因,把問題指向固定的東西。

我改的設定有用嗎?

標記「我剛剛換到 5GHz」,之後報告會用前後一樣長的時間窗口對照。 拿一整晚的「之前」比五分鐘的「之後」,什麼改動都會顯得有效——所以它不那樣做。

那我該怎麼辦?

把診斷結論變成一份照順序排的建議,每一條都印出它的依據。 不會因為「這是普遍的好建議」就給你——一份每次都叫你重開路由器的清單,只會教會你不要看它。

這條線到底多快?

主動測速,而且測的是你正在看的那個 CDN,不是某個測速網站。 時間和流量雙上限,測速前會先在歷史上標記,免得把自己造成的尖峰當成故障。

還有

自動跟隨你在看的頁面、自動切換到最快的 CDN 節點、手機開網頁看即時數字、 五種介面語言(简中/繁中/English/日本語/한국어)。

誠實這件事

它會說「我不知道」

一個診斷工具最容易犯的錯,不是量不到東西,而是在雜訊裡找到一個假的模式, 然後有人照著它花一個週末去修一個不存在的問題。所以資料不夠的時候,它就說資料不夠。

[ ok ] Bilibili API reachable
        TCP handshake: 51 ms
        API answered, code=0
[ ok ] path tools (ping / gateway)
        default gateway: 192.168.0.1
        8.8.8.8: 23 ms avg, 0% loss
[skip] CDN edges
        needs a room id

托盤選單的「產生診斷報告」會把每個探測對真實伺服器跑一次,把拿到什麼原封不動印出來, 不做任何斷言,結果直接進剪貼簿。輸出裡沒有 Wi-Fi 名稱、沒有公網 IP、沒有帳號。

已經在真實機器上驗證過

  • 安裝流程、自動更新、GUI 診斷報告
  • B 站 API 連線(code=0
  • DNS 解析、預設閘道偵測、ICMP ping
  • 連線表與程式偵測(認得出官方 PC 客戶端)
  • 歷史紀錄與報告產生

還沒有

  • playurl 解析
  • 直播延遲量測
  • CDN 節點比較與自動切換
  • 主機名解碼(對真實主機名)

這四項需要一個正在直播的房間號才跑得到。在此之前它們只對著測試資料驗證過—— 這一點寫在這裡,而不是留給你自己發現。

隱私

你的資料不會離開你的電腦

不用帳號 沒有任何追蹤或統計 沒有伺服器可以上傳

這不是一句口號,所以下面把它會連的每一個地方都列出來——除此之外沒有了。

連到哪裡什麼時候為什麼
你正在監測的對象每次探測就是要量它的延遲
api.live.bilibili.comapi.bilibili.com 只在監測 B 站時取播放位址(免登入、不帶 Cookie)
你的路由器/第一跳按下體檢,或卡頓時分段診斷(系統內建 ping)
api.github.com每天最多一次,可關查最新版本號
speed.cloudflare.com只在你按測速、且沒在看東西時公開測速點

自動更新是這個程式裡唯一會「下載檔案然後執行它」的功能,所以規矩訂得很死: 只收 https、主機必須在固定的 GitHub 清單裡(跟完重導向後再檢查一次)、 位元組必須符合 API 公布的 sha256,不符就直接刪掉。沒公布校驗碼就不自動裝,只給你連結。

要不要下載

這適合你嗎

遊戲打到一半突然延遲,但不知道是不是自己網路的問題 適合
B 站直播、影片偶爾卡一下,測速卻永遠正常 最適合這個程式就是為了這件事寫的
想拿證據去跟電信商客服講,而不是「我覺得很慢」 適合體檢報告是一個可以直接寄出去的檔案
只是想知道現在網速多少,測一次就好 不用一般測速網站就夠了,不需要多裝一個常駐程式
網路一直都很穩,只是好奇 大概用不到它要跑個兩三天才開始有話講
取得

下載與原始碼

Windows
安裝版 LagScope-setup.exe
免安裝版也有;只有安裝版會自我更新
macOS
LagScope-macos-arm64.zip
Linux
LagScope-linux-x64.tar.gz

MIT 授權。562 個自動化測試,在 Windows、macOS、Ubuntu 上以 Python 3.9/3.11/3.12 執行。 約 15,000 行 Python,介面用 PySide6。