本页面介绍了v2rayN的测速系统,该系统允许用户通过各种测试方法来评估服务器性能。测速功能可帮助用户在其配置中识别出最快、响应最快的服务器。
v2rayN提供四种类型的测速以评估服务器性能
这些测试可帮助用户根据延迟和吞吐量指标识别最佳服务器。
来源: ServiceLib/Services/SpeedtestService.cs48-66 ServiceLib/Services/SpeedtestService.cs234-294
测速功能已集成到“配置文件”视图中,并提供多种访问方式
| 测试类型 | 菜单选项 | 键盘快捷键 | 功能 |
|---|---|---|---|
| TCP Ping | menuTcpingServer | Ctrl+O | 测试TCP连接建立时间 |
| Real Ping | menuRealPingServer | Ctrl+R | 测试通过代理的实际延迟 |
| Speed Test | menuSpeedServer | Ctrl+T | 测试下载速度 |
| Mixed Test | menuMixedTestServer | Ctrl+E | 组合延迟和速度测试 |
测速结果会显示在“配置文件”视图的数据网格中,其中
可以通过按Escape键随时取消测试,该操作会调用 ServerSpeedtestStop()。
来源: ServiceLib/ViewModels/ProfilesViewModel.cs195-211 v2rayN/v2rayN/Views/ProfilesView.xaml.cs246-337 v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml.cs269-339
TCP Ping 测试会建立一个直接的TCP连接到服务器,并测量所需时间。
关键步骤
来源: ServiceLib/Services/SpeedtestService.cs120-145 ServiceLib/Services/SpeedtestService.cs324-355
Real Ping 测试通过代理传输流量时测量实际延迟。它会启动一个代理进程,并通过该代理发起HTTP请求。
关键步骤
来源: ServiceLib/Services/SpeedtestService.cs147-232 ServiceLib/Services/SpeedtestService.cs296-304
Speed Test 通过下载配置URL的数据来测量代理的下载速度。
关键步骤
来源: ServiceLib/Services/SpeedtestService.cs306-322 ServiceLib/Services/SpeedtestService.cs59-60
Mixed Test 结合了 Real Ping 和 Speed Test,具有可配置的并发性,可以高效地批量测试多个服务器。
关键步骤
来源: ServiceLib/Services/SpeedtestService.cs234-294 ServiceLib/Services/SpeedtestService.cs21-29
测速结果存储在 ProfileExItem 模型中,并通过 ProfileExHandler 持久化到SQLite数据库。
ProfileExHandler 的内存集合中indexId 在一个队列中被跟踪SaveTo() 时,所有更改将以批量操作的形式保存到数据库SetSpeedTestResult 方法使用结果进行更新来源: ServiceLib/Handler/ProfileExHandler.cs66-129 ServiceLib/Models/ProfileExItem.cs6-15
测速行为通过应用程序设置进行配置
| 设置 | 描述 | 默认 | 位置 |
|---|---|---|---|
| SpeedTestUrl | 用于下载速度测试的URL | 可配置 | Config.SpeedTestItem |
| SpeedPingTestUrl | 用于实际ping测试的URL | 可配置 | Config.SpeedTestItem |
| SpeedTestTimeout | 测试允许的最大时间 | 可配置 | Config.SpeedTestItem |
| MixedConcurrencyCount | 混合模式下的并发测试数量 | 可配置 | Config.SpeedTestItem |
应用程序还提供了管理测试结果的UI选项
SortServerResultCmd)RemoveInvalidServerResultCmd)来源: ServiceLib/ViewModels/ProfilesViewModel.cs212-219 ServiceLib/Services/SpeedtestService.cs63
测速系统针对不同的协议类型有特殊的处理方式
GetTestBatchItem),以实现高效测试来源: ServiceLib/Services/SpeedtestService.cs357-373 ServiceLib/Services/SpeedtestService.cs68-118
ExitLoop()Logging.SaveLog() 机制进行记录来源: ServiceLib/Services/SpeedtestService.cs31-39 ServiceLib/Services/SpeedtestService.cs166-186
SemaphoreSlim 用于限制并发测试的数量来源: ServiceLib/Services/SpeedtestService.cs234-294
v2rayN中的测速系统通过多种测试方法提供了全面的服务器性能评估功能。它既提供简单的单个测试,也提供高效的批量测试能力,结果清晰地显示在UI中并进行存储以供将来参考。该实现通过精细的并发管理和对不同协议类型的特殊处理,在性能和资源使用之间取得了平衡。
有关更新v2rayN核心组件的信息,请参阅 Update System。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(456ffb)