TFileStream тормозит при чтении/записи малыми кусочками

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

TFileStream тормозит при чтении/записи малыми кусочками

Сообщение Cheb » 29.11.2014 21:03:23

Чудовищно тормозит. Поскольку все операции напрямую передаёт Windows API.

Собсно пост, где я открываю для себя кровавые подробности: viewtopic.php?f=9&t=1137&p=83396#p83396

Добавил тупую ручную буферизацию через статический массив + MOVE - получил тридцатикратный прирост производительности. :evil:

Внимание, вопрос: может есть какие нашлёпки, типа буферизующего потока (подобно тому, как TCompressionStream и TDecompressionStream садятся поверх TFileStream) ?
Чтобы лисапеды, значицца, не изобретать?
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: TFileStream тормозит при чтении/записи малыми кусочками

Сообщение Ism » 29.11.2014 22:56:14

Может использовать tmemorystream, а потом все сбрасывать на диск ?
Какова задача ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: TFileStream тормозит при чтении/записи малыми кусочками

Сообщение Sergei I. Gorelkin » 30.11.2014 08:03:15

Имеются в наличии классы TReadBufStream и TWriteBufStream (модуль bufstream, пакет fcl-base).
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: TFileStream тормозит при чтении/записи малыми кусочками

Сообщение Mirage » 02.12.2014 00:32:10

TFileStream не должен сам ничего буферизировать, т.к. это не всегда надо.
Тем более, что, как уже написали, есть буферизующие реализации.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru
cron