Рамдиск с файловым зеркалом
Я хотел ускорить компиляцию, поэтому подумал, что мои файлы могут быть собраны на виртуальном диске, но он также автоматически сбрасывается в файловую систему и использует файловую систему, если не хватает оперативной памяти.
Мне может понадобиться что-то подобное для приложения, которое я пишу, где я хотел бы, чтобы файлы кэшировались в оперативной памяти и сбрасывались в FS. Какие у меня варианты? Есть ли что-то подобное, что уже существует? (возможно, предохранитель?) Приложение - игрушечное приложение (на данный момент), и я должен был бы повторно скомпилировать код на C++. Как мы знаем, чем больше времени требуется для компиляции, когда есть какая-то конкретная проблема, которую нужно решить перед тем, как продолжить. тем меньше мы можем сделать.
3 ответа
Рам-диски прошли путь додо с кешем файловой системы. Он может принимать гораздо лучшие решения, чем статический кеш, имея информацию об использовании ОЗУ другими программами и о положении головки записи на диск. Ленивая обратная запись бесплатна.
Компиляция связана с процессором, а не с диском. Если вы используете все ядра вашего процессора, используя соответствующий флаг сборки, вы можете легко насытить их на типичных ПК. Если у вас нет своего рода суперкомпьютера, я не думаю, что это сильно ускорит процесс.
Для VS2008 этот флаг /MP
, Он также существует на VS2005.
Не уверен, что это поможет ответить на вопрос почти 12-летней давности, но только сейчас я искал какое-нибудь программное обеспечение для синхронизации файловых систем или каталогов, чтобы сделать именно это. Оба ответа верны в том смысле, что кеш файловой системы попытается предсказать, что вам нужно, и сделать доступным в ОЗУ, и, как правило, создание программного обеспечения дает много преимуществ многопоточности, возможно, максимально загружая ваш ЦП. Но сейчас я строю на Unity и не могу контролировать оптимизацию сборки.
Тем не менее, у виртуального RAM-диска есть преимущества, потому что эти файлы всегда находятся в RAM, в отличие от кеша файловой системы (FSC), который имеет дело с ресурсами и приложениями, конкурирующими за доступ к диску.
Еще одно отличие состоит в том, что когда приложение закрывает дескриптор файла или принудительно выполняет синхронизацию, FSC попытается как можно скорее загрузить эти файлы на диск, чтобы избежать проблем (сбой питания и т. д.). Я считаю, что вы можете изменить поведение FSC в Linux. Синхронизация с RAM-диском не записывает на диск, что может быть причиной разницы в производительности, о которой вы сказали в своем комментарии.
Тем не менее, мне все еще нужно искать что-то для автоматической синхронизации двух моих файловых систем!