Witam ma ktoś pomysł na wzór obliczający prędkość pobierania pliku. Dane, które mam co około 1/100 sekundy to ile bajtów zostało pobrane i ile zajmuje plik.
0
1
oblicz średnią z kilku ostatnich sekund... (ściągnięte dane/czas)
1
Podstawy matematyki się kłaniają, mnożysz przez 100 i masz prędkość w bajtach na sekundę. Przewidywany czas pobrania - rozmiar dzielisz przez prędkość.
0
Według obliczeń, średni czas wykonywania funkcji to ~0.09 sekundy. Więc dałem żeby wynik mnożył razy 10 i wynik daje prawidłowy (w przypadku mojego neta ~1250 kb/s).
Tutaj kod jak by ktoś potrzebował :
qint64 predkosc = ((bytesRead - fileSpeed) * 10) / 1024; // zamiana od razu na kb/s
fileSpeed = bytesRead;
Ps. Dodaje też wersję z liczeniem czasu wykonywania funkcji :P (błędy pomiarowe od 1/1000 do 9/1000 milisekundy)
// typy zmiennych
// qint64 bytesRead;
// qint64 fileSpeed;
// QTime t;
qint64 predkosc = ((bytesRead - fileSpeed) * (t.elapsed() / 10)) / 1024;
t.start();
fileSpeed = bytesRead;
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.