Improve speed test

This commit is contained in:
2dust 2022-04-12 13:38:42 +08:00
parent 785ebc49fc
commit a3aa6c045f
6 changed files with 32 additions and 8 deletions

View file

@ -16,7 +16,6 @@ namespace v2rayN.Base
{ {
private static HttpClientHelper httpClientHelper = null; private static HttpClientHelper httpClientHelper = null;
private HttpClient httpClient; private HttpClient httpClient;
private int progressPercentage = -1;
/// <summary> /// <summary>
/// </summary> /// </summary>
@ -120,7 +119,7 @@ namespace v2rayN.Base
var totalRead = 0L; var totalRead = 0L;
var buffer = new byte[1024 * 1024]; var buffer = new byte[1024 * 1024];
var isMoreToRead = true; var isMoreToRead = true;
progressPercentage = -1; var progressPercentage = 0;
do do
{ {
@ -183,14 +182,24 @@ namespace v2rayN.Base
using (var stream = await response.Content.ReadAsStreamAsync()) using (var stream = await response.Content.ReadAsStreamAsync())
{ {
var totalRead = 0L; var totalRead = 0L;
var buffer = new byte[1024 * 128]; var buffer = new byte[1024 * 64];
var isMoreToRead = true; var isMoreToRead = true;
progressPercentage = -1; var progressPercentage = 0;
DateTime totalDatetime = DateTime.Now; DateTime totalDatetime = DateTime.Now;
do do
{ {
token.ThrowIfCancellationRequested(); if (token.IsCancellationRequested)
{
if (totalRead > 0)
{
return;
}
else
{
token.ThrowIfCancellationRequested();
}
}
var read = await stream.ReadAsync(buffer, 0, buffer.Length, token); var read = await stream.ReadAsync(buffer, 0, buffer.Length, token);
@ -211,7 +220,7 @@ namespace v2rayN.Base
TimeSpan ts = (DateTime.Now - totalDatetime); TimeSpan ts = (DateTime.Now - totalDatetime);
var speed = totalRead * 1d / ts.TotalMilliseconds / 1000; var speed = totalRead * 1d / ts.TotalMilliseconds / 1000;
var percent = Convert.ToInt32((totalRead * 1d) / (total * 1d) * 100); var percent = Convert.ToInt32((totalRead * 1d) / (total * 1d) * 100);
if (progressPercentage != percent && percent % 2 == 1) if (progressPercentage != percent)
{ {
progressPercentage = percent; progressPercentage = percent;
progress.Report(speed); progress.Report(speed);

View file

@ -39,7 +39,7 @@ namespace v2rayN.Handler
try try
{ {
Utils.SetSecurityProtocol(LazyConfig.Instance.GetConfig().enableSecurityProtocolTls13); Utils.SetSecurityProtocol(LazyConfig.Instance.GetConfig().enableSecurityProtocolTls13);
UpdateCompleted?.Invoke(this, new ResultEventArgs(false, ResUI.Downloading)); UpdateCompleted?.Invoke(this, new ResultEventArgs(false, ResUI.Speedtesting));
var client = new HttpClient(new WebRequestHandler() var client = new HttpClient(new WebRequestHandler()
{ {

View file

@ -187,7 +187,7 @@ namespace v2rayN.Handler
}; };
downloadHandle2.Error += (sender2, args) => downloadHandle2.Error += (sender2, args) =>
{ {
_updateFunc("", args.GetException().Message); _updateFunc(testIndexId, args.GetException().Message);
}; };
var timeout = 8; var timeout = 8;

View file

@ -879,6 +879,15 @@ namespace v2rayN.Resx {
} }
} }
/// <summary>
/// 查找类似 Speed Test... 的本地化字符串。
/// </summary>
internal static string Speedtesting {
get {
return ResourceManager.GetString("Speedtesting", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 PAC failed to start. Run it with Admin right. 的本地化字符串。 /// 查找类似 PAC failed to start. Run it with Admin right. 的本地化字符串。
/// </summary> /// </summary>

View file

@ -457,4 +457,7 @@
<data name="SystemProxy" xml:space="preserve"> <data name="SystemProxy" xml:space="preserve">
<value>System proxy</value> <value>System proxy</value>
</data> </data>
<data name="Speedtesting" xml:space="preserve">
<value>Speed Test...</value>
</data>
</root> </root>

View file

@ -457,4 +457,7 @@
<data name="SystemProxy" xml:space="preserve"> <data name="SystemProxy" xml:space="preserve">
<value>系统代理</value> <value>系统代理</value>
</data> </data>
<data name="Speedtesting" xml:space="preserve">
<value>测速中...</value>
</data>
</root> </root>