Главная страница
    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.005 c
3-56979
Максим С.
2002-01-23 13:32
2002.02.18
Нужен пример работы с Interbase на Delphi5


7-57234
REL
2001-11-09 11:37
2002.02.18
Логическая задачка (не могу справиться)


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


3-56980
sync
2002-01-22 09:11
2002.02.18
Как в Оракле выбрать нужные записи из таблицы с помощью хранимой процедуры?


1-57144
daos
2002-02-01 09:07
2002.02.18
Закрытие формы





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