Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.004 c
14-57194
RaZEr
2001-12-27 06:35
2002.02.18
Автозапуск ! где ?


3-56990
vopros
2002-01-23 13:57
2002.02.18
Индексы изнасиловали меня в конец...


14-57196
programmer1
2001-12-27 19:25
2002.02.18
Динамическая подгрузка dll библиотеки


6-57183
snowman
2001-11-23 11:47
2002.02.18
firewall


3-56977
Laimer
2002-01-23 13:13
2002.02.18
TDBGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский