Измерьте скорость загрузки
Я создаю приложение для Windows, чтобы контролировать мои серверы. Я хочу знать скорость загрузки и выгрузки на сервер, на котором размещено мое веб-приложение. Я использую FTP для проверки скорости, потому что и HTTP, и FTP используют TCP-соединение. Ниже определяется расчет скорости загрузки. Есть ли другой способ проверить скорость загрузки? Слышал, что скорость загрузки можно узнать по мониторингу ник карты. Ожидание продолжения советов. Можно ли рассчитать, используя метод (totalDataSent/ TotalTimeTaken).
Но скорость зависит от размера файла. Пожалуйста, дайте ваш совет
private string UploadSpeedCheck()
{
FileStream rdr;
FtpWebRequest request;
FtpWebResponse response;
Stream requestStream;
try
{
//Upload
DateTime start = new DateTime();
DateTime end = new DateTime();
rdr = new FileStream("C:\\test\\temp2.txt", FileMode.Open);
request = (FtpWebRequest)FtpWebRequest.Create(url);
request.Credentials = new NetworkCredential(serverUserName, serverPassWord);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.KeepAlive = false;//Do not keep alive (stateless mode)
requestStream = request.GetRequestStream();
byte[] inData = new byte[rdr.Length];
int bytesRead = rdr.Read(inData, 0, int.Parse(rdr.Length.ToString()));
start = DateTime.Now;
requestStream.Write(inData, 0, int.Parse(rdr.Length.ToString()));
requestStream.Close();
response = (FtpWebResponse)request.GetResponse();
end = DateTime.Now;
response.Close();
double sizeInKb = (rdr.Length * 8) / 1024;
TimeSpan ts = end.Subtract(start);
double speed = sizeInKb / ts.TotalSeconds;
string unit = "Kbps";
if (speed > 1000)
{
speed = speed / 1024;
unit = "Mbps";
}
return "Upload Speed : " + speed.ToString("0.0") + " " + unit;
}
catch (Exception e)
{
return "Test failed";
}
finally
{
rdr = null;
request = null;
response = null;
requestStream = null;
}
}