Windows 10 UDP 套接字基准测试在安全模式下速度更快

Windows 10 UDP 套接字基准测试在安全模式下速度更快

UDP 套接字性能

我为 UDP 套接字做了一个简单的 SendReceive 基准测试,并注意到 Windows 安全模式下的性能比正常模式下的性能要快得多。为什么会这样?在正常模式下,我非常小心地终止了任何不必要的进程,并且在基准测试运行时也没有看到任何其他进程占用 CPU 时间(例如 Defender)。您可以使用 github 上的 repo 重现该问题:https://github.com/JohannesDeml/MicroBenchmarksDotNet

我最初在对成熟的低级网络库进行基准测试时注意到了这个问题(网络基准DotNet)。

基准测试结果如下:

方法 图书馆 安全模式(毫秒) 正常模式(毫秒) 减速
PingPong不可靠 恩特 2,798.70 5,003.60 78.78%
PingPongBatched不可靠 恩特 488.4 668.2 36.81%
PingPong不可靠 NetCore服务器 4,101.40 6,642.10 61.95%
PingPongBatched不可靠 NetCore服务器 3,580.80 6,037.30 68.60%
PingPong不可靠 精简网络库 2,873.40 5,161.40 79.63%
PingPongBatched不可靠 精简网络库 535.7 573 6.96%

所有详细信息可在此找到Google 电子表格

对于正常模式和安全模式,我在管理员模式下使用命令行并尝试不运行其他进程(请参阅上面的电子表格,了解在两个实例中运行的所有进程的详细列表)。我还将基准测试文件夹和 dotnet sdk 文件夹添加到 Windows Defender 防病毒排除列表中。当我在正常模式下运行基准测试时,我也看不到任何其他进程在 CPU 上旋转。

为什么正常模式和安全模式之间会有如此大的差异?当我在网上搜索时,我找不到任何解释或说明套接字被限制或类似情况?知道我在正常模式下可以尝试什么来获得相同的性能统计数据吗?

相关内容