С помощью библиотеки xNet написал на C# небольшую программу для скачивания файлов с сервера, но вот что заметил... Каждый файл в среднем весит 400 Мб. В начале скачивания скорость очень высокая, за секунду пару мегабайт точно скачивается, а после примерно 100 скаченных Мб за секунду и 1 Мб не скачивает. Почему так происходит? В чем проблема? Можно ли это исправить?
> Можно ли это исправить?
Я бы попробовал реализовать скачивание на System.Net.HttpWebRequest, вместо какой-то левой библиотеки, написанной человеком, который не умеет переопределять метод ToString.
Было что-то такое с WebClient, переделал на HttpWebRequest - все стало ок.
Ну для начала какой у вас канал, и с какой скоростью идет отдача? Не факт что он и в первую секунду скачивает 1мб. Как вы это определили?
А вообще причин может быть множество - например банальная настройка шейпера или веб сервера.
Вы не сказали откуда скачиваете файл, по какому протоколу, и.т.д. - без этой информации гадать смысла нет.
АртемЪ: speedtest показывает скорость приема - 7Мбит/с, отдачи - 9 Мбит/c.
Факт, потому что в проге вывожу объем полученных данных и общий размер данных.
А откуда скачиваю это не важно. Скачиваю по http протоколу.
sergeevpetro: Ну если у вас спидтест показывает 7Мбит/с, то скачать за секунду пару мегабайт он точно не может, это физически невозможно.
Вы считать надеюсь умеете?
sergeevpetro: Тогда очень странно. Попробуйте добавить логи, проследить за загрузкой ЦП, освобождением буферов данных и прочим. Можно поднять на своём же ПК сервер и для эксперимента попробовать скачать файл с него. Если скорость тоже будет падать - проблема на стороне программы. Если нет - возможно, ухудшение параметров канала (потери пакетов, и тому подобное).