迫于在 Mac 没找到喜欢的网速监控工具,所以又造了一个

2021-06-05 17:10:35 +08:00
 foam

之前使用 IStat 来看网速,换了个电脑后,想找个免费的软件。但能找到的都是类似 Tencent Lemon 这类只能看总体流量的软件,无法看到每个进程的。

后面有了解到 eulstats 这类监控聚合软件,确实挺齐全的。不过我只想要个网速监控,于是在 V2EX 搜索了关键词,找到了这类软件看了下源码,一些是自己调 mac api 统计的,一些是轮询 nettop 实现的( eul 和 stats 也是轮询 nettop )。

轮询 nettop 有个问题,就是计算得不是很准确,毕竟有个时间差在那。不在意这点误差的也无所谓啦。不过我还是希望能够准确一些,所以尝试了 nettop 的 delta 模式,在该模式下,是由 nettop 来计算每个时间周期的流量增量,所以应该是很准确的了。但如果在子进程使用这个模式去拉取数据,也有一些棘手的问题:

  1. 直接执行命令,无法实时获取到标准输出,需要用 script 命令包一下
  2. nettop 如果关闭标准输入,会导致该进程的 cpu 占用非常高。需要想办法 block 住标准输入(不确定是否为 nettop 的 bug )
  3. 增量数据逐行输出,不是很好判断什么时候到了本次输出的最后一行。所以用防抖(限流?)的思想,等待 ms 时间若没有新的数据则认为本周期结束,可以输出

为了解决上述问题,用 go 包了一层,有兴趣的同学可以看看 源码

言归正传,这个应用是用 swiftUI 写的(所以要求 macOS 版本 >= 10.15 )。因此,能够较好地适应 dark 模式

欢迎盆友们可以 Star 支持一下,也可以提 PR 、issue 以改进该项目吖~Github 地址: https://github.com/foamzou/ITraffic-monitor-for-mac

最后附上在 light/dark 模式下的截图

周末愉快~

7607 次点击
所在节点    分享创造
33 条回复
foam
2021-06-11 20:34:10 +08:00
@hronro #20
Thanks. 端午安康~
tvirus
2021-06-15 14:38:06 +08:00
支持 M1 吗?
foam
2021-06-15 22:12:39 +08:00
@tvirus 身边没有 m1 机器,你那边测试后麻烦同步下哇,谢谢
foam
2021-07-11 00:04:15 +08:00
@SimonOne #14
懒癌患者来更新啦,已加入 brew 支持。并且更新了个小版本

> Install: brew install itraffic
> Update: brew update && brew upgrade itraffic
zhufeilong
2021-08-06 14:13:25 +08:00
谢谢分享,已经安装,终于找到一个喜欢的简洁的网速显示问题
foam
2021-08-07 12:20:38 +08:00
@zhufeilong #25
欢迎反馈体验问题
zhufeilong
2021-11-04 15:12:16 +08:00
@foam 似乎在 Monterey 上显示空白,不知道是不是我的问题
foam
2021-11-06 11:31:23 +08:00
@zhufeilong 你好,我刚刚在我的 2019 版 mac 更新了 Monterey ,版本号为:12.0.1 (21A559)。目前使用 Itraffic 0.1.4 是正常的噢。
如果问题仍然存在,可以下载源码在你机器重新编译看看。
zhufeilong
2021-11-08 16:58:55 +08:00
@foam 谢谢你的跟进,我重新安装了一下,已经正常显示了
theliang
2022-06-04 11:14:40 +08:00
赞👍一个,在使用了
foam
2022-06-04 12:30:03 +08:00
@theliang #30 棒
vitaminx
2023-06-16 09:53:25 +08:00
这个很不错,必须赞一个!
资源占用打估计是 nettop 的锅
mikaelson
2023-08-09 09:28:03 +08:00
话说,怎么弄开机启动?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/781574

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX