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

Вниз

Поделитесь кодом а :)))   Найти похожие ветки 

 
Русский   (2001-11-12 14:22) [0]

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


 
33   (2001-11-13 02:06) [1]

Общая схема
Читаем первые 5 байт


var FHandle:Integer;
Buf:array[1..5] of byte;
begin
FHandle := FileOpen(name, fmOpenRead); //Открываем
FileSeek(FHandle,0,0); //устанавливаем указатель
FileRead(FHandle, Buf,5); //читаем в массив


А с буфером непонятно.
Тебе какой нужен? Буфер обмена Windows7


 
33   (2001-11-13 02:12) [2]

А насчет быстроты это не только от программы зависит.
Сделай виртуальный диск и самая медленная программа на виртуальном
диске в памяти будет читать файлы быстрее, чем самая быстрая на винте.
Кроме того есть такое слово Кеш, упреждающее чтение, фрагментация и т.д


 
Никто   (2001-11-13 03:21) [3]

SCSI


 
Русский   (2001-11-13 10:04) [4]

Слушай 33, во первых спасибо, что отозвался.
Во - вторых: вопрос ? Я делаю Hex - редактор (уж очень люблю всё ломать)
и вот мне нужно прочитать страницу 256 байт (соответственно 16 байт в
строке x 16 строк). Так вот как сделать быстрее читать по 16 байт,
перекодировать и выводить, или сразу прочесть 256 байт, потом
перекодировать и выводить. Как лучше?


 
Коляныч ©   (2001-11-13 10:14) [5]

Быстрее будет прочитать все 256 байт и потом их перекодировать


 
Марат   (2001-11-13 13:09) [6]

С точки зрения затрат времени
лучше всего читать один блок
например для NTFS по умолчанию размер блока равен 512
а еще есть параметры блочного чтения HDD,
размер кэша,
драйвер ОС ...



 
Vitaly Nevzorov   (2001-11-13 21:56) [7]

Когда-то была у меня проблема писать в файл с максимальной скоростью и я проводил измерение быстродействия разных способов (это было на Win 95/ Delhpi 3). Быстрее всего оказалось BlockRead-BlockWrite - при тщательно подобранном размере буфера (на тот момент на моем железе это было что-то между 64k и 512 kb), на втором месте оказалась работа через TFileStream, который впрочем довольно сильно отставал если надо было писать небольшими порциями. Потом шли виндовские функции чтения файла и соответствующие бормандовские (через OpenFile/FileOpen), на последнем месте - read/write. Данное исследование не претендует на универсальность, так как много воды утекло, уже мало у кого 95 винды встретишь и железо такое...


 
Exception   (2001-11-14 10:07) [8]

Вообще, начиная с определенного размера блока, размер блока не должен играть существенной роли - во первых, сейчас в Win2K/XP очень эффективно реализовано упреждающее чтение, а во вторых, практически все равно, сколько секторов читать за раз, если читаем болше секторов, чем на 1 дорожке - все равно, время перехода с дорожки на дорожку будет сравнимо или больше времени, потраченным на чтение. Так что читай килобайта по 64 - и все будет ОК.



Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.017 c
1-57145
Rain
2002-02-04 07:07
2002.02.18
Помогите пожалуйста!


1-57055
Dim
2002-02-04 13:21
2002.02.18
Что такое TAddTeeFunction ?


14-57199
Knight
2001-12-28 11:58
2002.02.18
Всех с праздниками, вопросик несколько хакерский но просто срочно понадобилось!!!


1-57128
pus
2002-02-02 22:30
2002.02.18
Браузер


1-57077
Rad
2002-01-31 19:19
2002.02.18
Сервер приложений DCOM