Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

Тормозит вся система при копировнаии файла   Найти похожие ветки 

 
Mozart_mcs   (2006-03-16 10:29) [0]

Файл порядка 300 мег, копируется по сети, при этом данный компьютер использовать во время копирования невозможно... Все тормозит,... Комп не слабый... Думаю, что все дело в неправильном моем подходе.. Как например можно уменьшить отжираемые ресурсы для процедуры CopyFile()? Что еще не так?

try
application.ProcessMessages;
CopyFile(PChar(N1),PChar(N2),False);
finally
Form1.Memo2.Lines.Add("temp copied, from "+N1+" to "+N2+" "+DateTimeToStr(Now));
end;


 
Fay ©   (2006-03-16 10:42) [1]

Такая фигня бывает, когда UDMA отваливается. Проверь контроллеры ж.дисков в диспетчере устройств.


 
Сергей М. ©   (2006-03-16 10:58) [2]


> Как например можно уменьшить отжираемые ресурсы для процедуры
> CopyFile()?


Копирование файла "в один прием" - высокоприоритетная операция.
Думаю, следует отказаться от CopyFile() в пользу циклического поблочного копирования средствами, например, TFileStream с вызовом Application.ProcessMessages в каждой итерации (если копирование осуществляется в контексте осн.потока VCL-приложения).

Понижение же приоритета потока, копирующего файл средствами CopyFile(), практически не даст результата.


 
Desdechado ©   (2006-03-16 11:03) [3]

такое поведение часто наблюдается на интегрированных сетевухах


 
Mozart_mcs   (2006-03-16 11:40) [4]


> Такая фигня бывает, когда UDMA отваливается

вроде все ОК.


> такое поведение часто наблюдается на интегрированных сетевухах


т.е. - на отдельной сетевухе таких трабл. не будет?
(кстати вообще - может для серваков есть смысл в отдельных сетевухах, чтобы уменьшить степень тормозов?)


> Думаю, следует отказаться от CopyFile() в пользу циклического
> поблочного копирования средствами, например, TFileStream
> с вызовом Application.ProcessMessages в каждой итерации


Ок, я попробую, спасибо..


 
Anatoly Podgoretsky ©   (2006-03-16 11:53) [5]

А может и не так медленно?


 
Mozart_mcs   (2006-03-16 12:24) [6]

Да кстати - сетевухи все отдельные оказались..


> А может и не так медленно?

Нет... это.. ужасно...


 
Anatoly Podgoretsky ©   (2006-03-16 12:31) [7]

Это абстрактные слова


 
Black Krok ©   (2006-03-16 12:35) [8]

Может, SHFileOperation() бережнее отнесется к ресурсам? Опять же красивше :)


 
Fay ©   (2006-03-16 12:48) [9]

2 Black Krok ©   (16.03.06 12:35) [8]
К каким ещё "ресурсам"?


 
Black Krok ©   (2006-03-16 12:50) [10]

2 Fay
Временным. В смысле, приоритет имеет меньший. Не проверял, но большие файлы копирую именно так. Именно из-за красивости


 
Fay ©   (2006-03-16 12:53) [11]

2 Black Krok ©   (16.03.06 12:50) [10]
Вы сами читали свой ответ?


 
Black Krok ©   (2006-03-16 13:08) [12]

2 Fay ©   (16.03.06 12:53) [11]
Читал. Если Вы в смысле, что на прорисовку летающих страничек тоже расходуется какой-то % процессорного времени, то, конечно,это так.

Однако, задача стояла не УСКОРИТЬ процесс копирования, а сделать его менее напряжным для машины. Если SHFileOperation() имеет более низкий  приоритет, задача решена.


 
Fay ©   (2006-03-16 13:16) [13]

> имеет более низкий приоритет
Какой "более низкий" ?
> Если ... имеет
А если нет?


 
Black Krok ©   (2006-03-16 13:21) [14]

>А если нет?

Написал "может", "не проверял". Что еще? Если Вы проверяли, и система задумывается совсем глубоко - так и напишите.


 
Fay ©   (2006-03-16 13:46) [15]

2 Black Krok ©   (16.03.06 13:21) [14]
Мне не удалось добиться "система задумывается совсем глубоко". Никак.


 
Black Krok ©   (2006-03-16 16:20) [16]

2 Fay ©   (16.03.06 13:46) [15]

Mozart_mcs это удалось. Для него и писал.


 
Styx_   (2006-03-16 16:40) [17]

А вообще стоит посмотреть в Process Explorer, кто занимает процессорное время. Тогда многое станет на место. Я так вывел на чистую воду Realtekовскую сетевуху, которая жрала процессорное время - не интегрированная, кстати. Только Process Explorer надо не из самых давних - чтобы Interrupts, DPCs и т.п. ерунду показывал.


 
Чапаев ©   (2006-03-16 17:04) [18]


> т.е. - на отдельной сетевухе таких трабл. не будет?

Смотря на какой... Прицепишь Финкель -- будет тебе щастье. Суреком (или вон товарищи ещё Реалтек упоминают) прицепишь -- будет тебе нещастье...



Страницы: 1 вся ветка

Текущий архив: 2006.04.23;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.079 c
2-1144314324
Cneltyn
2006-04-06 13:05
2006.04.23
Как вывести в Имидж содержимое другого Ммиджа в опр-ые координаты


15-1143993758
ArtemESC
2006-04-02 20:02
2006.04.23
С помощь чего можно...


2-1144434465
Nick_serov
2006-04-07 22:27
2006.04.23
Опять же вопрос по Grid у... (больше не буду.....наверно =))


2-1144747235
VAZMan
2006-04-11 13:20
2006.04.23
Options


5-1130223241
Чапаев
2005-10-25 10:54
2006.04.23
Странность в Delphi 2005