Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

开启显卡监控后网速显示为实际的双倍 #1263

Closed
DearTanker opened this issue Aug 3, 2022 · 6 comments
Closed

开启显卡监控后网速显示为实际的双倍 #1263

DearTanker opened this issue Aug 3, 2022 · 6 comments
Labels

Comments

@DearTanker
Copy link

DearTanker commented Aug 3, 2022

系统:Windows 11 专业版 21H2 正式版,系统自动更新,运行库完整。

前几天才突然出现网速显示翻倍的问题,不知道是不是最近的某个系统更新导致的。因为程序本身并没有更新过版本,而且没有去调整过设置。

今天重新下载了1.46版本后,看到网速显示正常,就从头开始配置了一遍,等配置完以后又发现网速显示翻倍了,于是一个个排查,最终发现,只要关闭硬件监控中的显卡监控,网速显示就正常了。

PS,顺便还发现,当速度显示超过 100M 时,最后一位的 s 不管怎么改显示设置都不会显示。

附图1,关闭显卡监控,网速显示正常。

附图1,关闭显卡监控,网速显示正常

附图2,开启显卡监控,网速显示翻倍。

附图2,开启显卡监控,网速显示翻倍

@Craigfu616
Copy link

和你一样的问题,我的网速显示翻了两三倍,关了显卡监控就好了,而且之前显卡都有占用显示,有一次更新系统之后就不显示占用率了,很奇怪

@zhongyang219
Copy link
Owner

暂时没有复现出你说的问题,目前不清楚是什么原因造成的,按理说网速监控和显卡监控这两个八竿子打不着的功能不应该会有任何影响的。

@DearTanker
Copy link
Author

最近升级到最新的1.84版后,这问题再次出现了。

@DearTanker
Copy link
Author

DearTanker commented Oct 20, 2022

@zhongyang219 @rocinante027 终于找到原因了。

在开启显卡监控的前提下,在【常规设置】-【监控时间间隔】改成 200ms ,点击【确定】会关闭选项设置窗口,这时候会测速一下就发现网速显示双倍了。

值得注意的是,设置 200ms 一定要点击确定关闭选项设置的窗口才行,不然网速显示还是不会翻倍。

结论就是:

  • 只要是设置 300ms 及以上,就正常。
  • 可以设置 200ms ,但是要关闭显卡监控。

不知道这个问题是 LibreHardwareMonitor 的问题还是 TrafficMonitor 这边的。

屏幕截图 2022-10-20 195750

屏幕截图 2022-10-20 195826

@FlandreSatori
Copy link

遇到相同的情况,开启显卡监控后网速变为两倍,关闭显卡监控后甚至飙升到10倍(千兆网口跑出五千兆),目前还没定位到问题
image

@zhongyang219
Copy link
Owner

zhongyang219 commented Feb 3, 2025

已经找到问题所在了,原因是“监控时间间隔”设置的过小导致的,如果“监控时间间隔”设置的过小,那么可能会在一个监控时间周期内无法完成所有监控数据的获取,也就是MonitorThreadCallback这个线程函数无法在一个监控时间周期内跑完,由于线程还没有退出,if (!m_is_monitor_thread_runing)这个条件就不会进入,也就是跳过了这个周期,那么下次获取到的数据流量与上次的数据流量之差其实是两个时间周期内产生的,程序却仍然认为是一个时间内产生的,所以网速就变成两倍了。

void CTrafficMonitorDlg::OnTimer(UINT_PTR nIDEvent)
{
    if (nIDEvent == MONITOR_TIMER)
    {
        if (!m_is_monitor_thread_runing)    //确保线程已退出
            AfxBeginThread(MonitorThreadCallback, (LPVOID)this);
    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants