Форум: "Система";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];
ВнизПоделитесь кодом а :))) Найти похожие ветки
← →
Русский (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c