Показать полную графическую версию : Нужна программа для помещения файлов в оперативку что-то вроде суперкеша.
ALEXEY_DFD
08-02-2011, 15:59
(Операционка Windows XP.)
Я хочу поместить некоторые файлы (около 200 мегабайт) в оперативную память. И подключить/смонтировать/подсоединить/ вклинить (не знаю какой термин лучше использовать) в пути к конкретной папке в файловой системе.
Что-то вроде кэширующего RAM-drive диска, но прозрачного для приложений. Чтоб они не знали что читают из памяти, обращались просто к диску. Обращение приложений перехватывалось бы и перенаправлялось на файлы, лежащие в памяти.
Проблема заключается в том, что я не могу закешировать всю папку с приложением. А только наиболее используемую часть небольшого размера.(кешируемые мелкие файлы беспорядочно раскиданы по древовидной структуре папок вместе с огромными, которые кешировать не надо.)
(Эмулятор компакт дисков немного похож по принципу действия -- берёт файл образа на диске и представляет его в виде компакт диска.)
Какие программы могут подойти для этого? Какой класс программ?
ALEXEY_DFD,
RAMDISK.Но особого прироста производительности не жди.
ALEXEY_DFD
09-02-2011, 12:35
это не то, мне не нужен ещё один диск в системе под отдельной буквой. Мне нужно закешировать отдельные файлы (не папки!) прозрачно для приложений.(пути к файлу, по которому его ищет приложение я поменять не могу)
Например:
1. Приложение лезет на жёсткий диск за файлом "C:\Program\Proga\resources\file1.bin"
2. обращение перенаправляется к участку памяти, где уже закеширован этот файл.
3. Жёсткий диск не задействуется.
а RAMDISKов целая куча (http://ru.wikipedia.org/wiki/RAMDisk ), но те что я смотрел просто тупо добавляют псевдодиск под буквой.
ALEXEY_DFD, файловая система NTFS поддерживает монтирование дисков в виде папок, создание мягкий ссылок и подобного. Попробуй может посмотреть в эту сторону.
И да, не забывай, что ОЗУ теряется при перезагрузке системы, т.ч. бэкап наше все.
А в чём сакральный смысл этой затеи? Или, спросим прямо, чем родной дисковый кэш ОС не угодил?
ЗЫ В стародавние времена, когда Win95 ещё была новой и сырой, была такая фиговина, называлась VRAMDIR. Судя по гуглю, разработка прекратилась где-то во времена Win2k.
ALEXEY_DFD
09-02-2011, 15:42
ALEXEY_DFD, файловая система NTFS поддерживает монтирование дисков в виде папок, создание мягкий ссылок и подобного. Попробуй может посмотреть в эту сторону. »
Правильно ли я понял: RAMdrive в таком случае должен иметь файловую структуру NTFS ?
Сейчас буду гуглить и разбираться.
А в чём сакральный смысл этой затеи? Или, спросим прямо, чем родной дисковый кэш ОС не угодил? »
Развлечения, всё дело в развлечениях. Игра с кривым движком не хранит ничего "лишнего" в памяти (хотя место ещё есть) и постоянно считывает всё подряд с диска.
Родной кеш не настраивается (либо я не знаю о такой возможности). Файлы постоянно меняются. И там остаются те, которые мне не так важны. В некоторых игровых ситуациях с тормозами мириться можно. А некоторые ситуации, просто портят настроение (я бы сказал даже -- бесят).
(о папке с игрой:
Файлов ~33 600
Папок ~3000
Размер 3,8 Гб)
+ ко всему: иногда у этого движка бывают утечки памяти и приходится перезапускать.
Да, и очень желательна бесплатная программа. Нет никакого желания связываться с триалом или shareware и пытаться искать обходные пути в них.
Сомневаюсь, что такое есть - одну я вспомнил, но она уже лет 10 как мертва, судя по всему из-за отсутствия спроса. Может, вам стоит попросту памяти доставить? На мой взгляд, дисковый кэш в Windows действительно далёк от идеала, но солидный объём памяти и аккуратность её использования решают большинство проблем такого рода.
ALEXEY_DFD
09-02-2011, 18:08
Вроде бы нашёл решение, хоть немного не такое как хотелось.
Почитал здесь http://habrahabr.ru/blogs/windows/50878/
Установил VSuite Ramdisk Free Edition.
Выделил ему 128 мегабайт.
Теперь bat-файлом копирую нужные папки на Ramdisk и назначаю ссылки на них с помощью утилиты linkd.
(Утилита входит в Microsoft Windows Resources Kit http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en )
Дальше разбираться не буду. Но может есть что-то проще. Поэтому тему пока не закрываю.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.