![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Организовать правильную работу с потоками... [Delphi, Windows]
andreil © (2008-03-05 16:55:00)В моей программе есть часть (основная), которая загружает кусок из одного потока в массив буффера, а потом - в другой поток. Но при этом процессор грузится нещадно, что замедляет работу программы :(
Вопрос - можно ли перевести кусок данных из одного FileStream в другой FileStream без промежуточного буфера? А то прога ворочает гигабайты, но скорость из-за нагрузки на процессор страдает.
andreil (2008-03-18 12:29:00) [1]Чуть не забыл сказать - у программы есть одно небольшое ограничение - чтение/запись происходят кусками по 8Кб, иначе нельзя, тк файл может быть фрагментирован. Например, раньше читалось по 521Кб, скорость была максимальная, но если попадался фрагментированный GCF-архив, из которого файлы и читаются, то стразу файлы поганятся, тк оказывается, что один кусок брали отсюда, а другой - оттуда, а надо было с третьего места :(
andreil (2008-03-18 12:26:00) [2]Да, поюал Stream2Stream. Файлик размером 55Мб копирнуло за 10секунд, и это - на САТА2 винчестерах, где скорость - 40Мб/с :(
А если еще расскоментировать код, отвечающий за внешний вид программы во время копирования, то вообще этот файл копирует за минуту :(
mdw (2008-03-12 14:57:00) [3]
> CopyFrom у FileStream есть?
Stream2Stream(..)
Palladin (2008-03-12 12:45:00) [4]CopyFrom у FileStream есть?