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

Вниз

Проект "CachedBuffers"   Найти похожие ветки 

 
DVM ©   (2013-04-16 19:06) [160]

Ну прям уж в 464. Это ни в коей мере не показывает и не доказывает какой либо ущербности tfilestream. Никому в здравом уме не придет в голову использовать tfilestream в чистом виде так как используется он в тесте. На пару с буферизованным декоратором он отстает совсем не намного уже.


 
DevilDevil ©   (2013-04-16 21:17) [161]

> DVM ©   (16.04.13 19:06) [160]

таки не соглашусь с тобой
знание сила, а незнание - слабость

меня многократно пытались убедить, что никаких промежуточных буферов не надо, потому что файловые операции оптимизированы и т.д.

на этом форуме недавно происходило общение на счёт задачки объединения нескольких фалов. так вот я посмотрел исходники - там для увеличения производительности файлы в пару сотен мегабайт грузились в память, вместо того чтобы читать кусками

если человек не знает как добиться профита и/или не имеет ресурсов/сил реализовать и отладить более сложный и быстрый подход - он будет пользоваться стандартным решением

а между тем методы Write и Read в CachedBuffers такие же как в TStream


 
Jeer ©   (2013-04-16 21:31) [162]

>знание сила, а незнание - слабость

"Знание, что сила - это знание, является слабостью" (С) Jeer


 
DVM ©   (2013-04-16 22:23) [163]

Write и Read может и такие же, но у всей конструкции есть один концептуальный на мой взгляд недостаток - она не наследник tstream, что делает невозможным использование этого кода ВМЕСТО tstream там где принимается параметром tstream. Все же нужен адаптер для tstream.


 
DevilDevil ©   (2013-04-17 00:10) [164]

> DVM ©   (16.04.13 22:23) [163]

ну...
там где действительно нужна скорость чтения/записи, логично пользоваться буфером напрямую. Логично переписать использование TStream на CachedBuffer

ну а если просто нужна совместимость со стандартным TStream - то достаточно просто написать враппер


 
имя   (2013-04-17 04:47) [165]

Удалено модератором


 
DevilDevil ©   (2013-04-17 09:36) [166]

> DVM ©   (16.04.13 22:23) [163]

раз уж пошла такая пьянка
предлагаю обсудить "интерфейсную" часть врапперов TStream <--> CachedBuffer
т.е. как для пользователя будет выглядеть это преобразование

на повестке дня
1) TStream <-- TCachedBufferReader
2) TStream <-- TCachedBufferWriter
3) TCachedBufferReader <-- TStream
4) TCachedBufferWriter <-- TStream

по поводу 3 и 4
по аналогии с TCachedFileReader/TCachedFileWriter (а скоро наверное появится TCachedMemoryReader/TCachedMemoryWriter)
логично сделать TCachedStreamReader и TCachedStreamWriter

а вот с 1 и 2 - не знаю
мне кажется типы TStreamReader и TStreamWriter - не читабельно

по идее можно сделать так:
function CreateStreamAsCachedBuffer(var Reader: TCachedBufferReader): TStream; overload;
function CreateStreamAsCachedBuffer(var Writer: TCachedBufferReader): TStream; overload;


 
DevilDevil ©   (2013-04-17 09:43) [167]

может быть сделать классы
TStreamAsCachedReader/TStreamAsCachedWriter, которые в конструкторе принимают либо ридер, либо райтер ?



Страницы: 1 2 3 4 5 вся ветка

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

Наверх




Память: 0.74 MB
Время: 0.031 c
15-1366093232
Y-
2013-04-16 10:20
2013.09.29
Какой самый лучши процессор у Intel?


15-1363017588
DevilDevil
2013-03-11 19:59
2013.09.29
Проект "CachedBuffers"


2-1358233902
Celtic
2013-01-15 11:11
2013.09.29
груповое изменение полей записей


8-1231067653
Lamer6666
2009-01-04 14:14
2013.09.29
Интерактивная карта


2-1357913717
Guest123
2013-01-11 18:15
2013.09.29
Проектирование БД