Ответ (см. Ниже) на один из вопросов прямо здесь, на Stack Overflow, дал мне идею для отличного небольшого программного обеспечения, которое могло бы быть бесценным для кодировщиков везде.
Я представляю программное обеспечение RAM-привода, но с одним принципиальным отличием - оно будет отражать реальную папку на моем жестком диске. Более конкретно - папка, в которой находится проект, над которым я сейчас работаю. Таким образом, любая сборка будет почти мгновенной (или, по крайней мере, на пару порядков быстрее). ОЗУ синхронизирует свое содержимое с жестким диском в фоновом режиме, используя только свободные ресурсы.
Быстрый поиск в Google ничего не показал, но, возможно, я просто не знаю, как Google. Возможно, кто-то знает о таком программном обеспечении? Желательно бесплатно, но разумные сборы тоже могут быть в порядке.
Добавлено: Было предложено несколько решений, от которых я отказался в самом начале. Они будут (в произвольном порядке):
- Купите более быстрый жесткий диск ( SSD , может быть, или 10K об / мин). Я не хочу аппаратного решения. Мало того, что программное обеспечение может быть дешевле (бесплатно, кто-нибудь?), Но оно также может использоваться в средах, где модификации оборудования были бы нежелательны, если не невозможны - скажем, в офисе.
- Пусть OS / HDD выполняет кэширование - он лучше знает, как использовать вашу свободную оперативную память. OS / HDD имеет общие алгоритмы кэширования, которые кэшируют все и пытаются предсказать, какие данные будут наиболее необходимы в будущее. Они понятия не имеют, что для меня приоритетом является папка моего проекта. И, как мы все хорошо знаем, они все равно мало что кешируют. ;)
- Есть много RAM-дисков; используйте один из них. Извините, это было бы безрассудно. Мне нужно, чтобы мои данные были синхронизированы обратно на жесткий диск всякий раз, когда есть немного свободного времени. В случае перебоя в питании я мог потерять последние пять минут работы, но не все со времени моей последней проверки.
Добавлено 2: Идея, которая возникла, - использовать обычный RAM-накопитель и синхронизатор фоновых папок (но я имею в виду background ). Есть ли такая вещь?
Добавлено 3: Интересно. Я только что опробовал простой привод RAM на работе. Время восстановления уменьшается с ~ 14 секунд до ~ 7 секунд (неплохо), но приростная сборка по-прежнему составляет ~ 5 секунд - как на жестком диске. Есть идеи почему? Он использует aspnet_compiler
и aspnet_merge
. Возможно, они что-то делают с другими временными файлами в другом месте?
Добавлено 4: О, хороший новый набор ответов! :) Хорошо, у меня есть немного больше информации для всех вас, скептиков. :)
Одной из основных причин этой идеи является не упомянутое выше программное обеспечение (время сборки 14 секунд), а еще одно, к которому у меня не было доступа в то время. Это другое приложение имеет базу кода 100 МБ, а полная сборка занимает около 5 минут. Ах да, это в Delphi 5 , поэтому компилятор не слишком продвинут. :) Размещение источника на RAM-диске привело к большой разнице. Думаю, у меня это меньше минуты. Я не измерял. Так что для всех тех, кто говорит, что ОС может лучше кешировать вещи - я позволю себе не согласиться.
Смежный вопрос:
RAM диск для ускорения IDE
Примечание к первой ссылке:
Вопрос, на который он ссылается, был удален, потому что он был дубликатом. Он спросил:
Что вы делаете во время компиляции вашего кода?
И ответ Дмитрий Нестерук , на который я ссылался, был:
Я компилирую почти мгновенно. Частично из-за небольших проектов, частично из-за использования RAM-дисков.