| 
 | 
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Подскажите... В java - скрипте реализовано копирование файлов на сетевой ресурс ... is = new FileInputStream(source); os = new FileOutputStream(dest); byte[] buffer = new byte[1024]; int length; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } Копирование длится в 3 раза дольше по сравнению с копированием в проводнике (FAR) файлы ~ 50гб C параметром buffer игрался - существенных результатов нет Чем объяснить? ПС: Не силен в предмете ...если не корректно задал прошу сильно не бить) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 08:15 | 
  
  
  
   | 
||
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  dbxp Чем объяснить? Что ты хотел от жабки? Чтобы она быстро работала? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 08:26 | 
  
  
  
   | 
||
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  crutchmaster, хотя бы так же ..то есть это очевидно? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 08:48 | 
  
  
  
   | 
||
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  dbxp crutchmaster, хотя бы так же Почему "хотя бы"? Типа в идеале должно быть быстрее? dbxp ..то есть это очевидно? Ну конечно, это же ява. Там есть какой-то оверхед на всё. Это только в синтетических тестах она обгоняет си в 20 раз. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 09:17 | 
  
  
  
   | 
||
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  dbxp, java.nio.file.Files#copy тоже медленно? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 10:26 | 
  
  
  
   | 
||
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  dbxp Копирование длится в 3 раза дольше ... C параметром buffer игрался - существенных результатов нет - используйте BufferedInputStream и BufferedOutputStream, но как уже отметили выше, возможно имеет смысл использовать другие способы копирования ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 10:45 | 
  
  
  
   | 
||
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов dbxp, java.nio.file.Files#copy тоже медленно? +1 Я чет как то дебажил Files.newInputStream(), и там еще и "правильный" буфер (но это частный случай возможно зависит от ОС и файловой системы) внутри в jvm был буффер его размер совпадал и не случайно с размером страницы файловой системы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 12:00 | 
  
  
  
   | 
||
| 
 
Копирование файлов 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  dbxp Подскажите... В java - скрипте реализовано копирование файлов на сетевой ресурс ... is = new FileInputStream(source); os = new FileOutputStream(dest); byte[] buffer = new byte[1024]; int length; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } Копирование длится в 3 раза дольше по сравнению с копированием в проводнике (FAR) файлы ~ 50гб C параметром buffer игрался - существенных результатов нет Чем объяснить? ПС: Не силен в предмете ...если не корректно задал прошу сильно не бить) Оптимизация копирования файлов - это отдельный челендж. Джефри РИхтер в своей книге по Windows посвятил этому несколько глав. В простейшем коде наподобие исходников apache commons io Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. простота принесена в жертву производительности. В этом однопоточном приложении примерно 50% времени мы ожидаем чтения блока и 50% времени ожидаем его записи. Чтоб ускорить это нужны другие подходы. Нужна разделяемая память для процесса (потока в Java) читателя и писателя одновременно. Или можно почитать про библиотеку nio. Возможно там эта задача уже решена как-то по другому. Но эта оптимизация даст преимущество когда у тебя не ноутбук а хорошая рабочая станция с 2 независимыми SATA-3 дисками или комбинация SATA/SSD. Тест с Far менеджером может быть фейком при многократных повторах. Здесь надо смотреть настройки FAR. рекомендую тебе повторить эксперимент с нуля сразу после физического ребута операционки. Резульат может быть другой. Вообще все современные файловые системы и хранилища сопротивляются бенчмаркам и хотят тебя обмануть. Операционка пытается кешировать чтение и запись. Еще хуже - экзотические файловые системы. Я недавно сам обманулся копируя на флешку в формате f2fs. Она скопировала файлы мгновенно. Но еще минут 15 в фоновом режиме на самом деле дописывала данные. И выдергивать ее было нельзя. Вобщем задай себе сам вопрос что тебе надо? Просто поставить джоб на копирование. Или получить самый последний байт физически лежащим в destination. И между этими двумя вопросами еще - такой ползунок который можно подвигать влево и вправо. Тоесть быстрее и ненадёжнее. Или медленнее и надежнее. Или можно вообще не копировать. Если ты - счастливый обладатель современного Linux, то тебе доступны операции COW (copy-on-write) которые просто делают интеллектуальный софт-линк на тело файла. Это работает только в рамках одной локальной файловой системы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.08.2020, 17:19 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=39989256&tid=2120715]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    50ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    48ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 230ms | 
| total: | 371ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.