Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Самая быстрая запись на диск   Найти похожие ветки 

 
тихий вовочка ©   (2004-03-31 22:21) [0]

Всем привет от безработного именинника. Ногами не бейте, реальность нижеприведенных рез-тов не гарантирую.Скажите, какой на ваш взгляд самый быстрый способ записи на диск? Не ассемблером в QNX,а через функции Винды? Сегодня посмотрел через CreateFile-WriteFile-CloseHandle среднее для разных размеров данных получилось около 56 Мбайт/секунду. Мне реально надо 128 Мб, хотелось бы еще с запасом. Мэппинг файла в памяти поднимет скорость общения? Машина P4 3.06, винчестер Seagate.
Кстати, смотрел тут скорость копирования и обнуления блоков памяти, так билдеровские CopyMemory и ZeroMemory обгоняют сишные memcpy и memset


 
Piter ©   (2004-03-31 23:34) [1]

Если хочешь быстро писать на хард, то ставь SCSI там или райд сразу.
Только вот сомневаюсь, что есть реальная потребность писать со скоростью 128 Мб в сек.


 
Игорь Шевченко ©   (2004-04-01 00:15) [2]


> Мэппинг файла в памяти поднимет скорость общения?


Нет, механизм у WriteFile и FileMapping один и тот же - через диспетчер кэша и диспетчер виртуальной памяти. (разумеется, я имею в виду NT-системы)

Совет насчет SCSI достаточно разумный. Скоростью записи можно попробовать управлять аппаратно (режимы DMA и т.д.).

Кстати, а зачем нужна такая скорость записи на диск ?

Oracle, например, организует на диске для ускорения работы так называемые Raw Partitions, без файловой системы, и пользуется своими средствами организации данных и доступа к ним, получается быстрее.


 
тихий вовочка ©   (2004-04-01 08:03) [3]

Нужно сливать данные с платы, которая работает с частотой 300 МГц и имеет разрядность 8 бит.
Имеем 3*10^8 * 1 = 3*10^8 байт или же 286 Мб в секунду. Так что потребность есть, но пока нам бы и 128 записывать


 
Cobalt ©   (2004-04-01 08:36) [4]

ГЫЫЫЫЫЫЫ
Простите, не удержался...
2 Тихий вовочка ©   (01.04.04 08:03) [3]
А как вы собираетесь эти данные считывать? Через порт ввода-вывода?
Вы попробуйте для начала отображать их на экране в виде графика, а потом, если уж получится отображать ВСЕ данные синхронно с их поступлением (или хотя бы без потерь данных)


 
Рамиль ©   (2004-04-01 08:38) [5]

А эта плата непрерывного действия? Можно было бы записывать в ОП и  скидывать на винт понемногу... И еще 300 МГц, это к какой шине вы собрались ее подключать?...


 
Nikolay M. ©   (2004-04-01 08:59) [6]

Мое имхо: мне тоже интересно, каким образом такая плата будет присоединена к компьютеру (PCI Express, USB 2.0?), но мне кажется, что работать на частоте 300МГц и передавать данные с частотой 300МГц - это две большие разницы. Ну, допустим данные все-таки реально передаются с такой частотой (например, результаты какого-то экстремально физического эксперимента). Ты уверен, что нельзя выкинуть рядом стоящие похожие данные и таким образом сжать входной поток данных?


 
Иксик ©   (2004-04-01 09:11) [7]

Это ж какая ОП должна быть? 1 GB на 4 секунды хватит.


 
Иксик ©   (2004-04-01 09:14) [8]


> Nikolay M. ©   (01.04.04 08:59) [6]

Имхо не успеет, у меня по алгоритму Хаффмана сжимается 1Mb в секунду, правда у меня комп гораздо слабее.


 
Труп Васи Доброго ©   (2004-04-01 09:28) [9]

Ну уж если он сумеет с такой платы снимать данные с такой скоростью, то пусть напишет прогу, которая будет передавать эти данные частями на несколько компов со SCSI RAID через мультигигабитмый адаптер и тогда успеет всё записать.
:))


 
Иксик ©   (2004-04-01 09:33) [10]

А может быть просто на два винта писать? :)


 
Nikolay M. ©   (2004-04-01 09:46) [11]


> Иксик ©   (01.04.04 09:14) [8]


> Имхо не успеет, у меня по алгоритму Хаффмана сжимается 1Mb
> в секунду

Да тут о сжатиии даже и речи нет, просто хотя бы выбрасывать лишние (похожие) данные.


> А может быть просто на два винта писать? :)

Это уже RAID, т.е. аппаратное решение проблемы, а автору нужно определиться, как данные писать: через Writeln или BlocкWrite :)
Имхо, проблема все-таки надумана.


 
тихий вовочка ©   (2004-04-01 11:08) [12]

Это плата втыкается на PCI имеет на борту 256 Мб собственной памяти. Грубо говоря если писать в буффер платы половинками, то в нечетную секунду я выгружаю первые 128 Мб в ОП с платы, а в четную вторые и так в цикле. Это нереально?


 
Cobalt ©   (2004-04-01 12:56) [13]

2 тихий вовочка ©
Возникает соответсвующий вопрос - а что вы считываете с неё?
Что за процесс?
Это ж, ядрён батон!, действительно Гигабайт за 4 секунды. А в минуту - 60 Гигов!!!


 
Danilka ©   (2004-04-01 13:00) [14]

[13] Cobalt ©   (01.04.04 12:56)
> Это ж, ядрён батон!, действительно Гигабайт за 4 секунды.
> А в минуту - 60 Гигов!!!


Вапщето, я думал в минуте поменьше секунд чем 60*4=240
:))


 
Cobalt ©   (2004-04-01 13:46) [15]

Да, ошибочка вкралась в вычисления :)


 
Иксик ©   (2004-04-01 13:50) [16]


> Danilka ©   (01.04.04 13:00) [14]

От такого напора данных время сжимается. :)



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

Форум: "Потрепаться";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.061 c
1-1081358420
Volodya_
2004-04-07 21:20
2004.04.25
label


3-1080720517
Samovar inc.
2004-03-31 12:08
2004.04.25
Fast


1-1081200929
TALLA
2004-04-06 01:35
2004.04.25
Не могу передать строку в DLL на VC++6


4-1077645218
Владимир Березин
2004-02-24 20:53
2004.04.25
Обработка WINDOWS - сообщения


14-1080720175
newone
2004-03-31 12:02
2004.04.25
Help!





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