Рамдиск с файловым зеркалом

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

Мне может понадобиться что-то подобное для приложения, которое я пишу, где я хотел бы, чтобы файлы кэшировались в оперативной памяти и сбрасывались в FS. Какие у меня варианты? Есть ли что-то подобное, что уже существует? (возможно, предохранитель?) Приложение - игрушечное приложение (на данный момент), и я должен был бы повторно скомпилировать код на C++. Как мы знаем, чем больше времени требуется для компиляции, когда есть какая-то конкретная проблема, которую нужно решить перед тем, как продолжить. тем меньше мы можем сделать.

3 ответа

Решение

Рам-диски прошли путь додо с кешем файловой системы. Он может принимать гораздо лучшие решения, чем статический кеш, имея информацию об использовании ОЗУ другими программами и о положении головки записи на диск. Ленивая обратная запись бесплатна.

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

Для VS2008 этот флаг /MP, Он также существует на VS2005.

Не уверен, что это поможет ответить на вопрос почти 12-летней давности, но только сейчас я искал какое-нибудь программное обеспечение для синхронизации файловых систем или каталогов, чтобы сделать именно это. Оба ответа верны в том смысле, что кеш файловой системы попытается предсказать, что вам нужно, и сделать доступным в ОЗУ, и, как правило, создание программного обеспечения дает много преимуществ многопоточности, возможно, максимально загружая ваш ЦП. Но сейчас я строю на Unity и не могу контролировать оптимизацию сборки.

Тем не менее, у виртуального RAM-диска есть преимущества, потому что эти файлы всегда находятся в RAM, в отличие от кеша файловой системы (FSC), который имеет дело с ресурсами и приложениями, конкурирующими за доступ к диску.

Еще одно отличие состоит в том, что когда приложение закрывает дескриптор файла или принудительно выполняет синхронизацию, FSC попытается как можно скорее загрузить эти файлы на диск, чтобы избежать проблем (сбой питания и т. д.). Я считаю, что вы можете изменить поведение FSC в Linux. Синхронизация с RAM-диском не записывает на диск, что может быть причиной разницы в производительности, о которой вы сказали в своем комментарии.

Тем не менее, мне все еще нужно искать что-то для автоматической синхронизации двух моих файловых систем!

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