关于 Tachyon GPU monitor
Tachyon 是面向运行游戏、创意应用、脚本或渲染任务用户的 NVIDIA GPU 只读监控器。它在本地解释瓶颈、预测显存使用、记录任务历史并诊断崩溃;可选的本地 MCP 服务向助手提供 GPU 状态。
主要功能
- 01实时 GPU 指标与进程归属
- 02解释性能瓶颈
- 03预测显存耗尽时间
- 04记录崩溃证据并诊断原因
- 05跟踪并比较渲染任务
- 06可选本地 MCP 服务,含九个只读工具
适用场景
- 01检查渲染任务是否可能适配现有显存
- 02结合近期读数和 Windows 事件调查重启
- 03将当前渲染性能与此前运行进行比较
MCP 相关
启用后,`tachyon.exe mcp` 会通过管道运行本地 MCP 服务,提供九个只读工具。助手可查询 GPU 状态及相关读数;监控器不会修改 GPU 设置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Tachyon
NVIDIA 显卡上最轻量的实时 GPU 监控器,也是最能说明情况的监控器: 是什么拖慢了你的工作、显存何时会耗尽、电脑为何宕机,以及这次渲染与上次相比如何。它只读取信息:绝不会触碰时钟、风扇、电源限制或网络。
作者:Formray。
Tachyon 1.0 是首个正式版本。5.0 到 5.1.1 版本是 1.0 发布前的预览版;请参阅变更日志。
功能
1.1 新增:
- 渲染前检查:“此任务能否运行?” 渲染任务开始时,Tachyon 会查找同一任务(接着是同一项目,再接着是名称相似的任务)在相同分辨率下的早期运行记录。分辨率信息来自任务名称、日志路径或日志的前 16 KB(
4k、2160p、uhd、3840x2160、ffmpegscale=)。根据这些运行记录中各进程所需的显存,以及其他应用当前占用的显存,它会判断 应该能运行、比较紧张 或 很可能内存不足(“此任务在 4K 下需要约 15.2 GB 显存;可用显存为 14.0 GB。很可能内存不足,或运行速度非常慢。”),列出关闭后可释放显存的空闲应用,并给出预计时长。如果只有一个宽泛匹配项,或各次运行差异很大,它不会给出结论,以免误报。Hex 确认判断可靠时,会针对每个任务提示一次;面板会在瓶颈下方显示结果;Agent 可使用preflight工具。 - 崩溃诊断。 崩溃报告现在会按可能性排列原因,并给出大致百分比:内存不稳定或 EXPO/XMP、GPU 核心/显存超频、电源或 PSU、过热、驱动超时(TDR)或应用程序错误。规则会综合分析错误检查代码(0x1A、0x124、0x116……)、NVIDIA 驱动重置(nvlddmkm 153/13/14)、GPU 超时报告(LiveKernelEvent 141/117)、WHEA 错误、Kernel-Power 41、应用程序崩溃、停止前的温度、功耗和负载、GPU 的时钟偏移和功耗限制(崩溃前保存),以及内存速度与其额定速度的对比(SMBIOS)。每种原因都会列出相关证据和一条建议;报告只会使用 很可能 或 可能 等措辞,不会给出确定结论,也不会更改任何设置。可在报告视图(证据 ›)和 Hex 的提示中查看,也可使用
diagnose_crash工具。该工具还可以直接从事件日志和飞行记录器诊断旧崩溃(around: "2026-10-22"或"2026-10-26 18:09",按电脑实际停止运行的时间匹配)。如果 GPU 空闲时电脑断电,会指向断电或手动关机,而不是 GPU 功耗;如果内存运行速度低于标准速度、时钟在重启时发生跳变,且 BIOS 启动缓慢,报告会将这些情况列为 BIOS 设置已重置的迹象。Windows 在停止前写入、但时间早于飞行记录器最后一个采样点的记录(EventLog 6008 的“最后运行迹象”、最后一条日志)会标记为过期,不会被当作电脑停止运行的时间。
1.0 版新增,全部根据 Tachyon 已采集的数据在电脑本地完成计算(不额外轮询、不使用云服务或 AI 模型):
- 飞行记录器。 最近 15 分钟的读数(负载、温度、功耗、显存、时钟、限制因素、占用最高的进程)会写入磁盘上的两个小型固定大小文件,每个约 170 KB。如果 Windows 重启或 Tachyon 被强制关闭,下次启动时会显示一份崩溃报告:用通俗易懂的语言说明最后几分钟发生了什么、峰值是多少、哪个进程占用的显存最多,以及对应的 Windows 事件(Kernel-Power、错误检查、WHEA 硬件错误、NVIDIA 驱动程序重置)。Hex 只会提及一次,并附上 打开报告。菜单中的 导出飞行记录器 会写出 CSV 和 JSON 文件。
- “为什么这么慢?” 用一句话说明工作受阻的原因:GPU 本身、功耗上限、过热、视频解码器或编码器、单个 CPU 线程、所有 CPU 核心、显存或 PCIe,并标明判断的把握程度(确定、很可能或可能),以及作为依据的读数。只有新结论持续数秒后才会更新,因此不会闪烁。该信息会显示在面板和 Hex 的气泡中。
- 显存预测。 对显存使用情况按显卡和各个进程分别计算稳健趋势(斜率取中位数,因此单次峰值不会影响结果)。只有趋势稳定,且按当前速度显卡将在 15 分钟内满载时才会发出警告(“照此速度,约 6 分钟后显存将占满(python.exe 正以 25 MB/s 的速度增长)”),并指出占用显存却未使用 GPU 的后台应用。
- 作业历史。 每个已完成的渲染作业,或持续一分钟及以上的 GPU 忙碌时段,都会保存为一行记录:持续时间、平均和峰值负载、fps、能耗(Wh,由驱动程序的能耗计数器得出)、显存和温度峰值、受限速影响的时长,以及主要限制因素。下次运行相同作业时会与之比较(“比上次慢 14%;GPU 因功耗限制运行了 6 分钟”)。设置
price_per_kwh即可查看每个作业的成本。 - 供 AI Agent 使用:
tachyon.exe mcp。 一个本地 MCP 服务,提供九个只读工具,因此 Claude Desktop 或 Cursor 等助手可以查询 GPU 正在做什么以及原因。默认关闭,需在设置中启用(或设置agent_api = true);它通过管道运行,不使用网络。 - 设置页面。 右键单击小岛、Hex 或面板,然后选择 设置…,也可以使用面板中的齿轮图标。可设置模式、刷新率、项目文件夹、警报阈值、飞行记录器、作业历史、能耗价格和 Agent API,并提供 复制 MCP 配置 按钮。更改会在进行时自动保存并立即生效;只有飞行记录器需要重启。
沿用预览版的功能:
- 一个便携式 exe,大小约 1.8 MB。 无需安装程序、运行时或 OpenGL,也不会创建自己的 GPU 上下文:它不会唤醒正在测量的 GPU。
- 极光玻璃效果: 磨砂玻璃搭配柔和、实时变化的色彩场。色调随 GPU 负载变化(从蓝色到紫色),温度升高时会泛起暖色;只有数值变化时才会动效。真正的无边框设计:逐像素透明度、圆角形状和柔和阴影,窗口周围的空白区域可点击穿透至桌面。
- 三种模式,可从右键菜单切换(并会记住选择):
- Island: 屏幕顶部的胶囊形窗口,始终置顶,显示负载、温度、VRAM 和功耗。渲染运行时,辉光会像进度条一样填满窗口,并显示任务、帧数和 ETA。
- Companion (Hex): 桌面上的小型玻璃六边形,带有眼睛。它会呼吸,偶尔眨眼;渲染期间,发光进度线会沿边缘延伸;显卡温度过高时,它会变热(并冒出少许蒸汽);安静十分钟后会进入休眠。点击它会显示一个对话气泡,内含渲染进度、负载和温度、VRAM 占用最高的进程、四项关键数值以及 打开面板。
- Panel: 完整窗口,大小适配其内容。
- 实时显示 NVML 提供的所有信息: 负载、温度、VRAM、相对于上限的功耗、核心和内存时钟、风扇、NVENC/NVDEC、PCIe RX/TX、60 秒负载和温度曲线,以及用通俗文字说明的时钟限制因素(功耗上限、温度限制、功耗刹车等)。
- GPU 进程归因: 显示每个进程及其类别标签(游戏、创意应用、脚本/Python、浏览器、AI/Agent、系统、其他)、启动该进程的程序(
python.exe经由ComfyUI.exe启动),以及该进程自身的 SM / ENC / DEC % 和 VRAM。点击 显示全部 前,空闲的桌面进程会被隐藏。类别由 toml 文件中的规则定义。 - 可选的渲染跟踪: 指定包含渲染日志的文件夹(ffmpeg、tqdm、progress.json、批次和分块日志),即可跟踪进度、fps 和 ETA。
- 轻量设计: 单线程;没有持续运行的动画计时器(Hex 每绘制一帧才设置一个一次性计时器);窗口隐藏或被全屏应用遮挡时不绘制任何内容;启动后会缩减工作集。1.0 分析使用已采集的样本,记录器每 5 s 写入一次,每 30 s 刷新一次。
这里有什么
| 路径 | 功能 |
|---|---|
src/gui.rs | 小岛和面板:Win32 分层窗口、布局、输入、右键菜单和模式切换 |
src/gui/companion.rs | Hex 及其气泡:窗口、命中测试、帧调度、拖动 |
src/present.rs | 分层呈现器:通过 UpdateLayeredWindow(ULW_ALPHA) 推送预乘 BGRA DIB |
src/aurora.rs、src/glass.rs | 实时色彩场和软件玻璃效果(色调、光泽、细线、阴影) |
src/hex.rs、src/png.rs、res/hex/ | Hex:内嵌精灵图集、轻量级 inflate/PNG 读取器、动画器、边缘辉光和合成器 |
src/gui/views.rs | 洞察区块、崩溃报告和历史记录视图 |
src/voice.rs | Hex 在气泡中说的话 |
src/explain.rs | “为什么这么慢?”:基于最近 10 s 采样数据、带滞回的规则 |
src/forecast.rs | 按显卡和进程预测显存趋势(Theil-Sen 斜率),以及空闲时占用大量显存的进程 |
src/recorder.rs、src/report.rs、src/events.rs | 飞行记录器环形文件、崩溃报告及其导出、通过 EvtQuery 获取 Windows 事件 |
src/history.rs | 任务检测、能耗、jobs.jsonl 以及与上次运行的对比 |
src/insight.rs | 每个时钟周期基于监视器已有的采样数据,将以上四项关联起来 |
src/mcp.rs、src/agent.rs | tachyon.exe mcp 以及 Tachyon 在共享内存中发布的只读状态 |
src/dw.rs | 通过原始 COM 使用 DirectWrite 绘制文本,将字形运行缓存为覆盖纹理 |
src/theme.rs | 颜色,以及所有文本颜色必须通过的 WCAG 对比度检查 |
src/nvml.rs | 运行时加载 NVML;按设备记住不受支持的调用 |
src/procinfo.rs、src/monitor.rs | 启动器链、类别规则、进程筛选器、小岛规则、采样器 |
src/scan.rs、src/parse.rs | 渲染日志发现和解析器 |
src/config.rs | tachyon.toml:默认值、阈值、保存位置和模式,同时保留注释 |
tests/ | 解析器、发现、配置和合成场景测试;模拟用的 nvml.dll、脚本化 MCP 客户端,以及用于截图和测量的 wine 辅助工具 |
使用方法
从发布页面下载 tachyon.exe(或 zip 文件),然后双击运行。
该 exe 未经过代码签名,因此 SmartScreen 可能会提示:先点击 More info,再点击
Run anyway。你也可以自行构建:
git clone https://github.com/formray/tachyon.git
cd tachyon
# on Windows (MSVC): no icon unless MinGW windres is on PATH
cargo build --release
# from Linux/macOS, as the releases are built:
rustup target add x86_64-pc-windows-gnu # plus mingw-w64 for the linker and windres
cargo build --release --target x86_64-pc-windows-gnu
点击小岛可打开面板;点击小岛按钮(或双击顶部栏)可返回。点击 Hex 可打开它的气泡,拖动任意一个即可移动。 在任意位置右键打开菜单:GPU、固定、显示所有进程、 Mode(小岛 / 伴侣 / 面板)、Crash report(崩溃报告)、Job history(任务历史)、 Export flight recorder(导出飞行记录器)和退出。Tachyon 没有任务栏按钮。
在面板中,瓶颈旁的 Why? › 会解释原因,Open report › 会打开崩溃报告,History › 会打开任务列表。在 Hex 的气泡中,Why is it slow? › 会将气泡切换为答案。
设置
右键菜单(悬浮岛、Hex 或面板)中的 Settings…,或面板顶部的齿轮图标。共有五个选项卡:
| 选项卡 | 可更改的内容 |
|---|---|
| 常规 | 显示模式(悬浮岛、Hex、面板);Hex 是否播报崩溃报告;Hex 气泡保持打开的时长(5–30 s 或直到点击);刷新率(0.25–2 s);Start with Windows;存在多个 GPU 时要显示哪一个 |
| 项目 | 要监视的渲染文件夹(最多 12 个):通过文件夹选择器添加,点击 × 移除 |
| 警报 | 温度警报的琥珀色和红色阈值;VRAM 警报的琥珀色和红色阈值(GB);VRAM 预测提前多久发出警报(5–60 min,或关闭) |
| 数据 | 飞行记录器开关及保留时长(分钟);作业历史记录开关;能源价格和货币;Reset settings;数据存放位置以及如何移除 Tachyon |
| AI Agent | Agent API 开关及实时状态、Copy MCP config,以及 Agent 可以和不可以执行的操作 |
使用 − 和 + 按钮,或将鼠标滚轮悬停在数值上进行调整。每次更改都会经过范围检查、立即保存,并在 Tachyon 运行时应用;只有飞行记录器设置会提示 restart to apply。文件会先写入临时文件,再重命名,因此即使保存过程中发生崩溃,也不会留下不完整的文件;每次进入页面后首次更改时,都会将原文件保留为 tachyon.toml.bak。注释、未知键以及页面未显示的内容都会保留。除 tachyon.toml 外,页面只会在你明确操作时更改一项内容:默认关闭的 Start with Windows 会在“启动”文件夹(shell:startup)中放入指向此 tachyon.exe 的快捷方式,关闭该选项则会移除此快捷方式。不改注册表、不需要管理员权限,也不创建计划任务。点击 Reset settings 后还需再次点击确认;旧文件会保留为 tachyon.toml.bak,窗口位置也会保留。
页面支持键盘操作:按 Tab 和 Shift+Tab 在控件间移动焦点环,按 Space 或 Enter 确认,按 ← 和 → 更改数值、选项卡或分段,按 Ctrl+Tab 切换选项卡,按 Esc 返回。按 Ctrl+, 打开设置,按 Shift+F10 或菜单键打开右键菜单。玻璃背景上的文字颜色对比度至少为 4.5:1(通过 cargo test 检查)。
首次启动时,tachyon.toml 会以默认值写入 exe 所在目录,面板会打开并显示简短提示;文件中不含个人路径,也不会包含渲染文件夹,除非你添加一个。如果 exe 所在文件夹不可写,文件会改存至 %LOCALAPPDATA%\Tachyon\tachyon.toml。省略任何设置项时都会使用默认值;退出时会保存窗口位置和模式,不会改动你的注释。如果文件无法读取(例如拼写错误、类型错误、不是 UTF-8 或大于 1 MB),Tachyon 会将其保留为 tachyon.toml.corrupt-<date>-<time>,使用默认值启动,并在面板中说明情况。使用相同设置文件再次启动 tachyon.exe 时,已运行的实例会置于前台,而不是再打开一个实例。TACHYON_CONFIG=<file> 和 TACHYON_DATA_DIR=<folder> 可让某个副本使用独立的设置和数据,从而并行运行两个实例。
mode = "island" # "island", "companion" (Hex) or "panel"; unset = from [window] compact
glass = "auto" # "tint" (works everywhere), "blur" (experimental) or "auto"
poll_ms = 1000 # 250-2000
gpu_index = 0 # which GPU, when there is more than one (Settings > General)
pcie = true # PCIe RX/TX (about 20 ms of NVML wait per tick)
process_refresh_secs = 4
process_cmdline = false # true = also show command lines (off for privacy)
process_hide = ["dwm.exe", "explorer.exe", "…"] # hidden unless "show all"
render_roots = [] # folders with render logs; empty = no render tracking
blackbox = true # flight recorder (about 460 KB on disk in total)
blackbox_minutes = 15 # 1-60
history = true # job history
# price_per_kwh = 0.30 # optional: show the energy cost of each job
currency = "EUR"
agent_api = false # true = let `tachyon.exe mcp` answer AI agents
hex_announce = true # Hex opens its bubble once after an unexpected stop
bubble_close_secs = 8 # Hex's bubble closes after this; 0 = only when clicked
vram_forecast_minutes = 15 # warn when VRAM would be full this soon; 0 = off
[gpu]
# util_band_low = 77 # optional: cyan inside the band, amber above it
# util_band_high = 82
temp_amber_c = 80.0 # also when Hex gets warm
temp_red_c = 83.0
vram_amber_mb = 14500.0
vram_red_mb = 15600.0
[window] # written for you on exit
always_on_top = true
show_all_processes = false
# island_cx, island_y, x, y, hex_x, hex_y: remembered positions
[[process_rules]] # first match wins; * wildcards; replaces the built-in list
category = "Game"
color = "#FF5C7A"
names = ["*-win64-shipping.exe"]
parents = ["steam.exe", "epicgameslauncher.exe"]
渲染机器配置示例见 examples/tachyon_render.toml。
4.x 文件中的 glass = true/false 仍可加载(自动/着色);如果不存在 tachyon.toml,也会读取旧名称 rig_monitor.toml。
你的数据与隐私
Tachyon 不含网络代码:没有遥测、更新检查、崩溃上传或账户。它会读取 NVIDIA 驱动、进程列表、你添加的文件夹中的渲染日志,以及(针对崩溃报告)Windows 事件日志,并且只会写入以下内容:
| 位置 | 内容 |
|---|---|
exe 旁边的 tachyon.toml(或 %LOCALAPPDATA%\Tachyon 中) | 你的设置,旁边还会有 .bak 和任何 .corrupt-… 副本 |
%LOCALAPPDATA%\Tachyon\blackbox\ | 飞行记录器:两个固定大小的读数文件(约 460 KB) |
%LOCALAPPDATA%\Tachyon\history\jobs.jsonl | 已完成的作业(达到 2 MB 时轮替,并保留一个旧文件) |
%LOCALAPPDATA%\Tachyon\exports\ | 仅当你选择 导出飞行记录器 时 |
%LOCALAPPDATA%\Tachyon\logs\ | 仅当 Tachyon 本身崩溃时生成一个简短文本文件:版本、时间、停止位置和错误消息;不含读数 |
| 你的启动文件夹 | 仅当启用 随 Windows 启动 时包含 Tachyon.lnk |
共享内存 Local\TachyonAgentSnapshot | tachyon.exe mcp 的实时状态,仅当 Agent API 启用时;只有你的用户账户可以读取 |
记录器会保留进程名称(最多 24 个字符),不会保留路径或命令行(process_cmdline = true 会在面板中显示命令行,但绝不会存储);历史记录会保留渲染日志中显示的作业名称。将 blackbox = false 或 history = false 设为关闭相应功能。
移除 Tachyon: 关闭 随 Windows 启动(或从 shell:startup 中删除 Tachyon.lnk),退出程序,然后删除 tachyon.exe、其 tachyon.toml 和 %LOCALAPPDATA%\Tachyon 文件夹。不会留下其他内容。
安全模型和问题报告方式:SECURITY.md。
AI Agent(MCP)
打开 设置… → AI agents 并启用 Agent API;它会立即启动。复制 MCP 配置 会将包含此 tachyon.exe 完整路径的客户端条目复制到剪贴板。将其粘贴到你的 MCP 客户端中:Claude Desktop 使用 claude_desktop_config.json,Cursor 使用 .cursor/mcp.json。若不使用此页面,请设置 agent_api = true 并重启 Tachyon。条目如下所示:
{
"mcpServers": {
"tachyon": { "command": "C:\\Tools\\Tachyon\\tachyon.exe", "args": ["mcp"] }
}
}
客户端会启动 tachyon.exe mcp,并通过 stdin 和 stdout 与其通信。工具:get_status、get_bottleneck、get_vram_forecast、get_processes、get_blackbox、get_history、diagnose_crash(1.1)、preflight(1.1)、compare_last_run;全部为只读工具。Tachyon 运行时,这些工具会读取它每两秒发布一次的状态;若 Tachyon 未运行,tachyon mcp 则会自行进行一次简短读取。
搭配 Claude、Codex 和 Grok 使用
首先,在 Tachyon 中启用 Agent API(Settings → AI agents)。然后,针对每个客户端:
- **Claude Desktop:**从发布页面下载
tachyon-<version>-windows-x64.mcpb并双击(或选择 Settings → Extensions → Advanced → Install Extension)。系统会要求提供 Tachyon 设置文件:选择你所运行的 Tachyon 对应的tachyon.toml(位于其 exe 旁边;如果通过 winget 和 Scoop 安装,则位于%LOCALAPPDATA%\Tachyon\tachyon.toml),这样扩展程序就能看到相同的 Agent API 开关。也可以将 Copy MCP config 条目粘贴到claude_desktop_config.json中。 - Claude Code:
claude mcp add tachyon -- "C:\Tools\Tachyon\tachyon.exe" mcp(如果通过 winget 或 Scoop 将 Tachyon 添加到了 PATH 中,也可以直接运行tachyon mcp)。 - Codex(CLI、IDE、ChatGPT desktop):
codex mcp add tachyon -- tachyon mcp,或者在~/.codex/config.toml中添加:[mcp_servers.tachyon] command = 'C:\Tools\Tachyon\tachyon.exe' args = ["mcp"] - **Grok Build 和其他 MCP 客户端:**添加一个 stdio 服务,命令为
tachyon.exe,参数为mcp;大多数客户端都可以直接使用 Copy MCP config JSON。 Grok Build 也能读取 Claude Code 插件和技能。
使用 packaging/skill/tachyon-gpu/SKILL.md 中的技能可以让 Agent 更好地回答:针对不同问题该使用哪个工具、如何解读答案,以及 Agent API 关闭时该如何说明。将 tachyon-gpu 文件夹复制到 ~/.claude/skills/(Claude Code)、
~/.codex/skills/(Codex)或客户端的技能文件夹中。服务在读取数据的 PC 上运行;云端托管的 Agent 无法访问它。
在控制台中通过 TACHYON_DEBUG=1 运行它,即可查看玻璃模式,以及每 10 个刻度的绘制时间和轮询时间、绘制的帧数、工作集、私有字节数和 CPU 使用情况。
工作原理
采样。 每隔 poll_ms,一个 WM_TIMER 会同步读取 NVML:
利用率、温度、显存、功耗、时钟、风扇、编码器和解码器、
每个周期读取一个方向的 PCIe 数据、时钟事件原因,以及包含各进程利用率的进程列表。某台设备上的调用如果返回 NOT_SUPPORTED,就不会再对该设备发起该调用。
进程。 Toolhelp32 快照会缓存 process_refresh_secs 的时长,并为每个 GPU 进程提供一直追溯到 shell 的父级进程链。首条 names 与进程匹配或 parents 与启动器匹配的规则会设定类别。
绘制。 每个窗口(island、panel、Hex、bubble)都是一个 WS_EX_LAYERED 工具窗口。帧由 CPU 绘制到预乘 BGRA DIB 中(使用 tiny-skia 绘制形状、使用 DirectWrite 绘制文本、每种字符串和字号的字形只栅格化一次),再通过 UpdateLayeredWindow(ULW_ALPHA) 交给 Windows,因此透明像素确实是透明的。静态图层会一直保留,直到其指纹发生变化;每次轮询只绘制实时数值,没有变化时则不会呈现任何内容。命中测试遵循 alpha:阴影和形状周围的空白区域都允许点击穿透。
Hex 是一个精灵图集(包含三张 8 位掩码,分别用于 1x、1.5x 和 2x,约 140 KB),嵌入在 exe 中,并由内置的小型 PNG 读取器按当前 DPI 解码。状态脚本(idle、render、hot、sleepy)通过滞回机制选择帧;进度边缘采用带解析光晕的距离场描边,并按每 0.1 % 的进度缓存。每绘制一帧,都会为其停留时间设置一个单次计时器(0.33 s 到 2 s;只有眨眼和过渡时才使用 12 fps);Hex 在隐藏时或全屏应用位于其所在显示器前方时会暂停。
洞察。 每次采样后都会将刚取得的样本交给洞察引擎;引擎不会另外进行轮询。瓶颈规则会检查最近 10 s 的数据,且新结论必须连续四次评估胜出。VRAM 趋势是根据两分钟内的数据计算的 Theil-Sen 斜率。记录器会将每秒数据打包成一条 192 字节的校验记录,写入两个预分配的环形文件,并在每个会话中交替使用;session.json 会标明上一个会话是否正常结束。下次启动时,如果会话未正常结束,则会结合启动时间(GetTickCount64)判断应用是否被强制结束后重启,并通过 EvtQuery 获取该时间段内的 System 事件。作业数据以总和和峰值的形式累积,因此长时间渲染也只需几百字节。一次只允许一个实例记录(tachyon.lock)。
实测
Windows 11、RTX 5080
一台 PC:Windows 11 Pro(build 26300)、GeForce RTX 5080 16 GB、驱动程序 617.42、Ryzen 9 9950X(32 个线程)、64 GB RAM。Tachyon 以 Hex(伴随)模式运行,通过外部 Get-Process 测量(统计时间段内的 CPU 时间、工作集和专用字节);测量期间 GPU 视频渲染运行了 87 s 和 143 s(GPU 占用率为 72–84 %,功耗约为 220–260 W),之后又在 GPU 空闲时进行了测量。渲染数据取自添加 Settings 页面之前的 1.0 构建版本;空闲和 MCP 数据来自此版本。
| Windows 11、RTX 5080 | CPU(全部 32 个线程) | CPU(单个核心) | 工作集 | 专用字节 |
|---|---|---|---|---|
| Hex,GPU 渲染中(每 5 s 采样一次,共 158 次) | 0.05 %(峰值 0.17 %) | 约 1.6 % | 32 MB(峰值 34) | 38 MB |
| Hex,空闲(60 s,Agent API 已开启) | 0.025 % | 0.8 % | 25 MB | 33 MB |
tachyon.exe mcp,请求间隔期间 | 0 % | 0 % | 9 MB | 1.7 MB |
从日志中提取了两次渲染作业并保存到作业历史记录中;面板上的 VRAM 数值与 nvidia-smi 相符(1252 对 1254 MiB,其中 326 MiB 为驱动程序预留)。同一台 PC 上的 MCP 客户端在启动 tachyon.exe mcp 后 9 ms 收到 initialize 的响应;Tachyon 运行时,每个工具的响应时间为 0.05–0.4 ms(中位数;首次 get_blackbox 最多需要 8.5 ms,因为它会读取记录器文件),温度和功耗也与 nvidia-smi 相符(35 °C、29.6 对 29.0 W)。
Linux 上的 Wine
这些数据来自
Linux 上搭配伪造 nvml.dll 的 wine 10(tests/fake_nvml_v4.c)、
Xvfb 和 picom 合成器;每次运行使用相同的伪造进程,
在 22 秒预热后测量 30 秒(tests/measure.sh)。预览版 5.1.1 在同一会话中与 1.0 交替测量。1.0
包含飞行记录器、作业历史和洞察;Agent
API 已关闭。
| Wine 10,伪造驱动 | 1.0 CPU(单核) | 1.0 内存 | 5.1.1 CPU | 5.1.1 内存 |
|---|---|---|---|---|
| Island,空闲 | 0.33 % | 34 MB | 0.33 % | 33 MB |
| Companion(Hex),空闲 | 0.40 % | 34 MB | 0.27 % | 34 MB |
| 面板,空闲 | 1.57 % | 45 MB | 1.13 % | 42 MB |
| Island,渲染中 | 0.53 % | 34 MB | 0.53 % | 33 MB |
| Companion,渲染中 | 0.43 % | 35 MB | 0.40 % | 34 MB |
| 面板,渲染中 | 1.47 % | 46 MB | 1.27 % | 43 MB |
| Companion,高负载(3 fps 循环) | 0.57 % | 34 MB |
可执行文件:1,803,776 字节(5.1.1:1,423,872)。不同运行的单次 30 秒测量窗口相差约 ±0.1 个百分点。面板的开销略高于 5.1.1,因为它更高且会显示洞察;Island 和 Hex 则与之前大致相同。大部分常驻内存来自 wine 本身,而 wine 既不会缩减工作集,也不会报告专用字节数,因此这些数据反映的是不同模式和版本之间的对比,而非 Windows 上的显示结果。
设置页面关闭时不会产生任何开销:它不保留状态,也不会启动计时器。使用相同方法与不含设置页面的 1.0 版本交替测量,面板空闲时的结果为 1.50–2.23 %,而对照版本为 1.37–1.93 %;Island 空闲时为 0.40 %,对照版本为 0.40 %;Hex 空闲时为 0.40 %,对照版本为 0.43 %;常驻内存多出 1–2 MB (可执行文件略大:1,846,272 字节)。
屏幕截图
这些截图是在 wine 下使用伪造驱动和程序生成的
壁纸(tests/make_wallpaper.py)拍摄的,因此所有
名称和值都是合成的。picom 混合图层窗口后,对 X 根窗口进行截取,因此图中显示的是真实的逐像素 Alpha 值。
崩溃报告来自一个预置数据的会话(tests/demo_data.rs);历史记录显示了演示作业的两次预置运行,以及一次在 wine 下实时记录的 GPU 会话。
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | |
![]() | ![]() |
已知限制
- 仅在一台 Windows 11 PC(RTX 5080)上检查过实时读数、作业检测、 历史记录和 MCP 服务;尚未测试 Windows 10 和其他显卡。 真实重启后的崩溃报告、Windows 事件及重启检测仍仅用合成数据测试过(wine 无法查询 事件日志)。
- **崩溃报告:**它可以说明何时发生崩溃以及当时正在运行什么,但无法证明 原因。正常关机不算崩溃;如果在最后 30 s 内断电,可能会丢失这段时间的数据。
- 瓶颈和预测是基于驱动读数的规则,并非分析器: 可能表示推测。WDDM 下通常无法获取每个进程的 VRAM 数据,此时预测仅针对显卡。
- **崩溃诊断(1.1)**是加权规则列表,并非调试器:百分比表示证据的大致占比, RAM 超频和 GPU 超频看起来可能相似(两者都会导致驱动重置和内存错误检查)。 RAM 速度来自 SMBIOS,某些主板可能无法提供;时钟偏移来自 NVML,只有 Tachyon 在崩溃前运行时才已知(较早的报告会在不使用这些数据的情况下重新分析)。 应用程序日志事件(GPU 超时报告、应用崩溃)需要能够读取 Application 日志。
- **预渲染检查(1.1)**仅从 1.1 记录的作业中学习(进程自身的 VRAM);1.0 的 记录只有显卡峰值,因此置信度较低。作业进程指作业期间 GPU 使用率至少达到 5% 的进程, 因此同时运行的其他繁忙应用也会被计入该作业。无法获取每个进程的 VRAM 数据时(WDDM 下很常见), 会改用显卡峰值减去开始时的数值。分辨率仅从名称和日志文本中获取。
- 仅支持 NVIDIA,Windows 10 1607+ 或 11,64 位。
- **没有真正的背景模糊效果:**玻璃效果使用有色调的替代效果。
glass = "blur"是实验性功能(可能出现锯齿边缘或模糊矩形),因此auto仍使用色调效果。 - **气泡:**按 Esc 不会关闭气泡(它不会获取键盘焦点):点击 Hex 或气泡,或等待 8 s(可在设置中更改)。它会淡入并滑入,而非缩放出现。
- 全屏暂停(游戏或视频占满显示器时,Hex、岛状界面和面板停止绘制;读数仍会继续)尚未在 Windows 上测试。
- **显示器变更:**窗口所在的显示器被拔掉后,窗口会回到最近的屏幕;仅通过单元测试验证过(wine 无法拔掉显示器)。
- **带可切换显卡的笔记本(Optimus):**每秒读取驱动可能会让 NVIDIA GPU 在电池供电时保持唤醒。设置
poll_ms = 2000,或在电池供电时退出 Tachyon;1.1 中没有自动暂停功能。 - 目前仅支持英语。
- **未签名的 exe:**Windows SmartScreen 首次启动时可能会提示 Windows 已保护你的电脑;检查文件与
SHA256SUMS.txt的校验值,或运行gh attestation verify tachyon.exe --repo formray/tachyon后,选择 更多信息 → 仍要运行。 - **点击穿透:**alpha 为 96/255 或更高的光环像素会接收点击;阴影会让点击穿透(
HTTRANSPARENT)。 - **没有托盘图标,也没有任务栏按钮:**请使用岛状界面、Hex 或右键菜单。
- 等宽数字依赖 Segoe UI;使用其他字体时,数字可能略有偏移。
- 高温状态下,只要显卡温度达到或高于
temp_amber_c,就会以 3 fps 重绘。 - 面板会根据内容调整大小;无法调整大小。
- VRAM 数值以 MiB(1024 × 1024 字节)为单位,但标为 MB;“已用”与
nvidia-smi显示的数值相同:不包括驱动为自身预留的内存(16 GB 显卡上约为 300 MiB)。不支持nvmlDeviceGetMemoryInfo_v2的驱动只会报告已用 + 预留,因此 Tachyon 读取到的数值会偏高。 - **每个进程的 VRAM:**在 WDDM 下,驱动通常不会报告该数据(“—”)。 每个进程的 SM/ENC/DEC 数据需要驱动支持。
许可证和来源
- Tachyon:MIT OR Apache-2.0(LICENSE-MIT, LICENSE-APACHE),© 2026 Formray。
- 依赖项(均采用 MIT 和/或 Apache-2.0 许可证,tiny-skia 采用 BSD-3-Clause): windows-sys、tiny-skia、libloading、serde、serde_json、toml、toml_edit、chrono。
- NVML(
nvml.dll)随 NVIDIA 驱动程序一同提供;它在运行时加载, 不会再分发。 - 不含来自 GPL 或 AGPL 项目的代码。
- 徽标、Hex 角色及其图集均为本仓库绘制; 徽标字样使用 Inter(SIL Open Font License),并转换为轮廓。
贡献
目前最有帮助的贡献是真实的 Windows 数据,以及真实崩溃的报告。请参阅 CONTRIBUTING:始终只读,先轻量处理,每项更改都附上测试或 截图。
由 Formray 制作。以匠心打造技术。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。









