2013-08-23 2 views
2

У меня есть веб-сайт say somthing.com, разработанный весной MVC и одно клиентское настольное приложение, разработанное в Swing Java. Я хочу загрузить массовые изображения с URL-адреса сервера.Загрузка насыщенного изображения оптимизированным способом

somthing.com/resourse/webfiles/imgs/1.jpg 
somthing.com/resourse/webfiles/imgs/2.jpg 
somthing.com/resourse/webfiles/imgs/3.jpg 
... 
somthing.com/resourse/webfiles/imgs/n.jpg 

Для целей тестирования я установил клиента на несколько ПК и получил доступ к серверу, но avg. для загрузки 1800 imgs/ПК требуется 20 минут.

Есть ли более быстрый способ сделать это?

Текущие шаги/Код входа в ... (извините за не давая фактический код ..)

  • Запрос URL изображения.
  • Получение ответа в выходном потоке.
  • после этого принимает byte и зацикливает его для того чтобы написать изображения в физическом месте.
+0

Разве ваша скорость загрузки изображения не зависит от скорости интернета? Кроме того, я бы предложил использовать NIO. –

+0

принимает размер 1800 изображений и время, необходимое для вычисления пропускной способности, которую вы фактически получаете в МБ/с или около того. Сравните это с теоретическим пределом пропускной способности между приложением и сервером (или как бы узким местом, может быть даже скорость записи hdd) – zapl

+0

Насколько велики изображения? Ваши цифры дают вам около 1,5 изображений в секунду, что довольно плохо, если изображения 2-3 КБ каждый, и довольно быстро, если они равны по 10 МБ. –

ответ

0

Если у вас есть доступ к серверу, просто скопируйте файлы на USB-накопитель и скопируйте их на каждый компьютер. Это может быть намного быстрее.

На самом деле, я бы предположил, что с вашим подходом пропускная способность между клиентским ПК и сервером - это ограничение, а не ваш код.

Потенциально, это может помочь сделать многопоточность. Но я бы не подумал, что это увеличит пропускную способность более чем на несколько процентов, если пропускная способность сети ограничена.

Вы можете быстро проверить, есть ли какой-либо потенциал для улучшения с помощью этого расчета: какова пропускная способность вашего соединения и как это сопоставляется с общими переданными байтами за двадцать минут? Для простоты я бы вычислил 10 бит в один байт реальных переданных данных, чтобы заботиться о служебных данных протокола.

+0

:) спасибо за ответ ур ... но поскольку мое серверное приложение размещено где-то еще, и мое настольное приложение может быть установлено на разных компьютерах/центрах доступа (около 5480) в другом месте ... и на изображениях сервера загружаются по темам эксперт, который будет загружать центры ... – Amogh

Смежные вопросы