Форум: "Прочее";
Текущий архив: 2013.09.29;
Скачать: [xml.tar.bz2];
ВнизПроект "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;
Скачать: [xml.tar.bz2];
Память: 0.73 MB
Время: 0.015 c