Подтвердить что ты не робот

Файлы с отображением памяти .NET.

У меня есть проект, и ему нужно получить доступ к большому количеству проприетарных данных в ASP.NET. Это было сделано на Linux/PHP, загрузив данные в общую память. Мне было интересно, будет ли попытка использовать файлы с памятью в MAP, или если есть лучший способ с лучшей поддержкой .NET. Я думал об использовании кэша данных, но не уверен в всех ошибках размера данных, сохраняемых в кэше.

4b9b3361

Ответ 2

Если вы ищете библиотеку с отображением памяти для С#, загляните в оболочку Tomas Restrepo filemap. Он лицензирован под LGPL.

Ответ 3

Файлы с памятью Mapped можно использовать, когда у вас большой объем данных, и вы не хотите брать на себя затраты на маршалинг по границам процесса. Я использовал его для аналогичной цели. Вы должны быть достаточно комфортно с небезопасными и закрепленными концепциями памяти в .NET, чтобы использовать MMF. По-видимому, блок кэширования корпоративной библиотеки содержит код, который обертывает базовый С# API. Я видел, по крайней мере, еще одну реализацию в другом месте.

Если вы можете жить с затратами на маршалинг, возможно, проще и элегантнее использовать какое-то решение для удаленного доступа .NET.

Ответ 4

Возможно, вы захотите просто выбросить его в объект Cache []. Вы можете установить срок действия кеша на основе реального файла. Затем, когда вы изменяете фактический файл, содержимое будет нулевым для объекта в кеше, и вы можете его перезагрузить. Это может быть неприемлемо, если вы имеете дело с большим количеством байтов.

byte[] fileBytes = Cache["fileBytes"];
if (null == fileBytes) {
   // reload the file and add it to the cache.
   string fileLocation = Server.MapPath("path/to/file.txt");
   // Just a same of some bytes.
   fileBytes = new byte[10];
   Cache.Insert(fileLocation, fileBytes, new System.Web.Caching.CacheDependency(fileLocation));
}

Я думаю, у меня нет конкретного ответа о характеристиках производительности кеша и больших объемах данных. http://www.alachisoft.com/ncache/asp-net-cache.html Указывает, что вы получаете от 2 до 3 гигабайтов пространства кеша, которые должны быть разделены между вашим приложением и кешем.