Информация об изменениях

Сообщение Re[4]: java.nio.file.Files.copy кушает процессорное время от 21.01.2015 23:40

Изменено 22.01.2015 0:04 vpchelko

Здравствуйте, sergey123_1, Вы писали:

_>Попробовал делать Bufferred и для in и для out разными способами, либо потребляется ещё больше cpu, либо столько же, сколько и Files.copy


Это да, проверил — java или ОCь (windows 7) сама оптимизирует запись на диск (файл растет большими кусками по 10-50 мегабайт за раз). Хотя у меня CPU практически не жрет (больше 1% в диспетчере задач не показывает).

П.с. хотя тот же curl стабильно 0% показывает. Издержки JVM тут ничего не поделаешь.

П.п.с https://bugs.openjdk.java.net/browse/JDK-8069327

Еще хороший совет дают на стек оферфлове:

http://stackoverflow.com/questions/921262/how-to-download-and-save-a-file-from-internet-using-java
Здравствуйте, sergey123_1, Вы писали:

_>Попробовал делать Bufferred и для in и для out разными способами, либо потребляется ещё больше cpu, либо столько же, сколько и Files.copy


Это да, проверил — java или ОCь (windows 7) сама оптимизирует запись на диск (файл растет большими кусками по 10-50 мегабайт за раз). Хотя у меня CPU практически не жрет (больше 1% в диспетчере задач не показывает).

П.с. хотя тот же curl стабильно 0% показывает. Издержки JVM тут ничего не поделаешь.

П.п.с https://bugs.openjdk.java.net/browse/JDK-8069327

Еще хороший совет дают на стек оферфлове:

http://stackoverflow.com/questions/921262/how-to-download-and-save-a-file-from-internet-using-java

Возможно то что надо:

Using transferFrom() is potentially much more efficient than a simple loop that reads from the source channel and writes to this channel. Many operating systems can transfer bytes directly from the source channel into the filesystem cache without actually copying them.