Есть ли разница в производительности между проверками подрывной деятельности и экспортом при запуске веб-приложения?
Мы уже реализовали это в нашем процессе развертывания, не измеряя различия (что плохо и плохо).
Наши намерения были:
а) сброс накладных расходов (папки .svn и их содержимое) и
б) улучшение любых материалов, связанных с перемещением по каталогам
У вас есть опыт или измерения для этого?
Это было бы сильно зависит от приложения. С приложениями, которые я развернул, это не имело значения, поскольку в приложениях нет абсолютно никакого обхода каталога каталога приложения. Некоторые фреймворки, в частности Rails, будут выполнять автоматическую загрузку файлов в приложении и выполнять обход каталога для обнаружения этих файлов, но обычно Dir['**/**']
type Affairs пропускает любые "скрытые" каталоги, такие как .svn и .git.
Если по какой-то причине вашему приложению или фреймворку необходимо было пройти по всем файлам в папке приложения и не игнорировать скрытые каталоги, может возникнуть незначительный эффект, но он будет настолько специфичным для приложения и ситуации, что вам будет сложно искать много советов из обобщенного ответа.
Все это говорит о том, что если у вас нет причин возвращать изменения из развертывания на сервер SVN, и вы используете механизм развертывания в скользящем стиле с несколькими каталогами (то есть вы каждый раз экспортируете / проверяете в новый каталог, а затем обновляете символическую ссылку или аналогичный), вы также можете перейти к использованию экспорта. Если ты просто svn update
в каталоге развертывания каждый раз, возможно, вы захотите использовать его для повышения эффективности ..
У клиента Subversion меньше операций ввода-вывода для записи экспорта, чем для извлечения, так как извлечение выполняет значительный объем блокирующих и журнальных записей.
Однако, учитывая это, я считаю, что иметь оформление заказа вместо экспорта в корне документа веб-сервера намного лучше, потому что вы можете просто 'svn update' до последней версии или запустить 'svn update -r PREV', чтобы отменить неудачный толчок . Поэтому я считаю, что удобство этого перевешивает любое преимущество меньшего количества операций ввода-вывода. Это предполагает, что вы не экспортируете, а затем экспортируете по FTP на свой веб-сервер.
Как вы выполняете развертывание на своем веб-сервере?
Одна вещь, которая действительно имеет значение для SVN (особенно checkin), - это сканирование на вирусы. Если вы можете отключить AV для каталогов .svn, вы увидите разницу.