имеет смысл спавнить горутины на скачку каждого файла?
Имеет смысл сделать очередь, которая раскидывает задачи по скачиванию на пул горутин Может так, может у кого идеи получше есть
Я имею в виду не как реализовать, а если я начну скачивать 10 файлов в горутинах и без них, то будет ли разница в эти условно 10 раз?
главное не переборщить, если удет условно горутины не лимитированы, а сами генерироваться, то можешь упереться в узкое горлышко, в виде интернет канала, условно, если у тебя создалось автомтически 50-100 горутин, то у тебя встанет скачивания из - за разделения скорсти на скачивание, если будешь так делать - делай ограничение на одновременное кол-во
Будет. В первом случае ты скачиваешь из синхронно
А какое примерно кол-во было бы оптимально, как это высчитать?
Спасибо, ещё вопрос. А если не только скачка файла, но и создание новых файлов на диске - ситуация такая же? Os.Create имею в виду
я не буду расписыватть, если тупо считать бери условно скорость интернета 100 мбит - 1 горутина скорость скачивания (в идеальном мире) будет 10мб/с, 2 горутины - 5мб/сек, 4 горутины 2.5мб/сек ну и дальше по аналогии
Зависит от сети, файлов и т д. Можешь тестами попробовать
А, даже банальнее, чем казалось Я просто делаю такой сервис, ии мне вспомнился вопрос из опросника, который где-то тут лежит. «Что происходит с горутиной, когда она идёт в сеть».. примерно так. Я вот не знаю ответ, поэтому спрашиваю , мало ли что там :)
но я очень грубо написал @cryshado правильно сказал, куча фаторов, начиная от скорости отдачи сервера откуда качаешь заканчивая пердежом голубя, который спит на ТКД на крыше из-за чего в дата центре инет просел на 1 секунду на 0.001мбит
Нашёл «Что происходит, когда вы отправляете данные из горутины в сетевое соединение?» А какой вообще ответ примерно?
Обсуждают сегодня