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