Создать виртуальный диск с .NET? - PullRequest
8 голосов
/ 29 июля 2011

Я нашел много хороших тем по переполнению стека, но мой вопрос немного более конкретен. Многие компании используют это программное обеспечение для размещения тех же услуг, что и мы ...

http://memory.dataram.com/products-and-services/software/ramdisk

Очевидно, что скорость чтения / записи на виртуальном диске безумно выше, и, поскольку мы запускаем очень интенсивное программное обеспечение ввода-вывода, я хотел бы написать что-нибудь, чтобы сделать то же самое. Мне нужно только, чтобы оно запускало приложение на виртуальном диске (для увеличения скорости ввода-вывода) и каждые X минут копировало данные в физическое местоположение на жестком диске.

Это было бы довольно легко сделать? Что я должен изучить, чтобы сделать это?

EDIT

Похоже, я могу использовать следующую библиотеку Dokan, но даст ли команда "subst" в Windows какое-либо увеличение производительности ввода-вывода, или эта библиотека будет лучшим выбором?

http://dokan -dev.net / о / о /

Ответы [ 2 ]

7 голосов
/ 29 июля 2011

Это действительно не вопрос C # / .NET, если вы не хотите писать свой собственный драйвер RAM-диска.Драйверы, подобные вашему по ссылке, существуют уже давно, и у них действительно безумные скорости чтения / записи, за счет доступности оперативной памяти для вашего приложения и ОС.Это может не быть проблемой в вашем случае, если у рассматриваемой машины много оперативной памяти.

Программная часть - периодическая запись содержимого RAM-диска на диск.Поскольку RAM-диск обычно отображается как просто другой диск, это просто копирование файлов с него на физический диск.Вы можете сделать это в C #, но это будет работать так же хорошо на многих языках сценариев.

Если это приложение высокого класса, обратите внимание на твердотельные диски SATA.У них скорость чтения / записи значительно выше, чем у жестких дисков, а данные сохраняются при сбоях, сбоях питания и т. Д.

0 голосов
/ 13 августа 2011

Если вам нужен ОЗУ, то вам действительно нужен драйвер блочного устройства, который будет работать в режиме ядра.Проблема с Dokan состоит в том, что (а) это драйвер файловой системы, и это требует много дополнительной работы для вас, (б) он вызывает ваш код режима пользователя, и это вызывает замедление, (в) это бесплатные вещи, которыенедостаточно стабилен для производственного использования.

...