Из соображений преимуществ использования RAM-диска, который размещается в оперативной памяти, вместо жестких дисков HDD и жестких дисков SDD, мы хотим, чтобы как можно больше временных файлов создавалось с помощью RAD Studio, файлов, которые компилятор/сборщик созданные во время компиляции/сборки, а также выходные файлы, такие как исполняемые файлы, создаются на RAM-диске.
Можно ли изменить разные пути сборки проектов в RAD Studio 10.2 Tokyo? Как?
Например, вместо диска C используйте диск M, который представляет собой RAM-диск емкостью 4 ГБ.
Обратите внимание, что сам проект находится внутри C, но временные файлы перемещаются куда-то еще.
Преимущества использования RAM-диска: (причины, которые меня побуждают это сделать)
более быстрое время сборки (без реального ввода-вывода)
SSD изнашивается при повторяющихся перестройках.
проекты по своей сути очищаются (что дает следующие преимущества)
делитесь быстрее, ваши проекты не заполняются ненужными файлами, поэтому вы можете легко делиться папками с другими. (размер кода обычно меньше 1 МБ, но объекты сборки могут превышать 100 МБ)
меньше шансов создания заблокированных файлов. (которые вызывают рассинхронизацию сборки, ошибки и т. д.), в этом случае форматировать виртуальный диск проще, чем копаться в настройках RAD Studio или перезапускать его.
Недостатки:
вам нужно гораздо больше оперативной памяти, в моем случае у меня 28 ГБ, из которых я могу выделить 4 ГБ.
если вы перезагрузите RAD Studio или компьютер, вы потеряете скомпилированные объекты, и вам придется пересобирать (один раз)
Но преимущества использования RAM-диска явно перевешивают его недостатки.
Хорошо, теперь, когда я разумно убедил вас, почему я этого хочу, дайте мне пути.
Как экспортировать параметры конфигурации в файл для восстановления параметров исходной конфигурации?
У меня разные причины сделать это, но следующие шаги:
Для Дельфи 12.1:
Откройте меню «Инструменты | Параметры».
Выберите строку «Папки по умолчанию».
Укажите новый путь проекта по умолчанию
Кроме того, вы можете делать то же самое от проекта к проекту и даже создавать конфигурацию, используя конфигурацию сборки через экран параметров проекта и выходные каталоги.
В Delphi 10.2 экран немного более загроможден, но принцип тот же:
Этот снимок экрана взят из версии 12.1 Community, но я сделал то же самое в версии 10.2. Я загружу и проверю, что процесс тот же, но мне так кажется. Конечно, я добился того же эффекта в 10.2.
На самом деле экран в 10.2 более загроможден, но принцип тот же.
Предложенное решение имеет проблему, поскольку, учитывая, что содержимое виртуальных дисков удаляется каждый раз при выключении или перезапуске компьютера, необходимо копировать весь проект с жесткого диска на виртуальный диск при каждом включении компьютера. дальше, а в конце задача скопировать проект с виртуального диска на жёсткий диск, что не красиво. Нет ли лучшего решения?
вы делаете хорошее замечание. Возможно, решением будет использование контроля версий или общего репозитория, но я этим не пользовался.
Пожалуйста, прочитайте первый абзац вопроса: «Из-за преимуществ использования RAM-диска, который размещается в оперативной памяти, вместо жестких дисков HDD и жестких дисков SDD, мы хотим, чтобы RAD создавало как можно больше временных файлов. Studio файлы, созданные компилятором/сборщиком во время компиляции/сборки, а также выходные файлы, такие как исполняемые файлы, создаются на RAM-диске». Многие файлы создаются на этапах компиляции, сборки и выполнения, хотя бы для того, чтобы эти файлы создавались в виртуальной памяти, а не на жестком диске, что нам делать?
Я считаю, что вам следует использовать одну из поставляемых систем контроля версий в сочетании с вышеуказанными. Использование контроля версий позволяет вам извлекать информацию из репозитория при запуске и фиксировать по завершении. Но признаюсь, что я не использовал этот метод.
Спасибо. Я читал ваш ответ, когда в моей офисной лампе перегорела лампочка. Мне удалось получить достаточно света от экрана (благодаря ГИГАНТСКИМ СИЯЮЩИМ БЕЛЫМ ИЗОБРАЖЕНИЯМ), чтобы выйти из офиса, взять лампочку на замену, вернуться, найти лампу и заменить лампочку.
Вы можете изменить нужные пути в Проект > Параметры > Сборка > Компилятор Delphi.
Более конкретно, вы, вероятно, захотите изменить
В любом случае, я не думаю, что вы много выиграете, используя RAM-диск с Delphi. Почему?
В отличие от многих других языков программирования, которые перекомпилируют каждый модуль при каждой компиляции, Delphi перекомпилирует только те модули, код которых действительно изменился с момента последней компиляции (если вы специально не выбрали сборку всего проекта). Так что, как правило, перезаписей скомпилированных файлов типа (.dcu) не так много.
Вы можете повысить производительность во время компоновки, поскольку Liker сможет извлекать скомпилированные файлы с RAM-накопителя намного быстрее, чем с обычного диска. Что ж, некоторые современные SSD-накопители могут очень быстро извлекать кэшированные файлы (они сохраняют несколько последних файлов, к которым был осуществлен доступ, в своем внутреннем кеше), так что здесь тоже может быть не так уж много прироста производительности.
Что касается износа SSD.
Количество перезаписей, которые вы будете вызывать в Дели, даже если вы каждый раз будете полностью собирать свой проект, ничто по сравнению с тем, что делает Windows, сохраняя всю информацию об индексе файлов, которую она собирает, постоянно индексируя содержимое файла. И да, я видел, как Windows глубоко индексирует содержимое файлов .pas, поэтому каждый раз, когда вы сохраняете проект, Windows будет переиндексировать ваши файлы. Это если только вы не отключили глубокую индексацию файлов *.pas, как я.
Да, и не заставляйте меня рассказывать о том, сколько данных записывает Windows, собирая и затем обрабатывая все данные телеметрии, которые оно постоянно отслеживает.
Если бы у вас когда-нибудь была возможность увидеть Windows 10 или новее, работающую на компьютере с механическим жестким диском, вы бы поняли, что я имею в виду. У моей мамы есть один такой компьютер, и я действительно удивлен, что ее жесткий диск все еще работает без проблем, поскольку он практически все время измельчает (читает/записывает).
Это нужно будет реализовывать по каждому проекту, а не глобально, но я на 100% согласен с другими вашими комментариями о том, что от этого многого не выиграешь.
@Dsm Да, это необходимо будет реализовать на основе проекта, поскольку эти местоположения всегда относятся к местоположению проекта.
Какая у вас версия RAD Studio?