Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1366453079
Фантазер
2013-04-20 14:17
2013.09.29
Ищу фант.рассказ


2-1357842704
Den
2013-01-10 22:31
2013.09.29
XmlDomDocument в какой строке кода не хватает атрибута.


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


2-1358138194
yaproq
2013-01-14 08:36
2013.09.29
Помогите ускорить скорость перемещения "курсора".


2-1358182960
McLotos
2013-01-14 21:02
2013.09.29
сохранение из TStringList в переменную типа string





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский