Могу ли я создать виртуальный диск в памяти программно?

В целях производительности я хочу записать в память, где может читать внешнее приложение. Я не могу связать оба приложения вместе, поэтому я думаю, что единственный способ - это написать файл. Но записать его на физический диск недостаточно быстро. Я хочу смонтировать виртуальный раздел, чтобы любое приложение могло получить к нему доступ. Как это сделать?

4 ответа

Решение

Вы можете использовать именованный канал для передачи данных между приложениями.

Вам не нужно заходить так далеко, чтобы создать виртуальный диск для разделения памяти между процессами в Windows - вы можете создать общий блок памяти, и тогда несколько процессов смогут получить доступ к этой памяти.

Смотрите эту статью MSDN: Создание именованной общей памяти

Я видел некоторую коммерческую доступную реализацию ramdisk для.net, но я не могу найти ее прямо сейчас.

Другой вариант может быть: C# доступ к файлу карты памяти

Я желаю, чтобы вы могли использовать.NET 4.0:)

.NET 4.0 представляет файл сопоставления памяти.

Гуннар Пейпман хорошо написал в блоге по следующей ссылке: .Net Framework 4.0: Использование файлов с отображенной памятью

В его блоге "Файлы, отображенные в память, полезны, когда вам нужно манипулировать данными в памяти, а ваши структуры данных велики. Для больших данных в памяти производительность файла, отображаемого в память, является наилучшей. Она намного быстрее, чем MemoryStream. Как и файлы на жестком диске, отображаемые в память файлы могут быть разделены между различными программами".

Его блог также содержит пример кода.

Другие вопросы по тегам