Хорошее развертывание Мерзавца с помощью стратегии ответвлений с Heroku?

Существует три недостатка:

  1. целый код будет полностью несжатым в виртуальной памяти, в то время как в регулярном EXE или DLL, только код, на самом деле используемый, загружается в памяти. Это особенно релевантно, если только небольшая часть кода в Вашем EXE/DLL используется при каждом выполнении.
  2. , Если существует несколько экземпляров Вашего DLL и выполнения EXE, их код не может быть совместно использован через экземпляры, таким образом, Вы будете использовать больше памяти.
  3. , Если Ваш EXE/DLL уже находится в кэше, или на очень быстром носителе, или если ЦП Вы работаете, является медленным, Вы испытаете уменьшенную скорость запуска, поскольку распаковка должна будет все еще произойти, и Вы не извлечете выгоду из уменьшенного размера. Это особенно верно для EXE, который будет вызываться многократно неоднократно.

Таким образом вышеупомянутые недостатки являются большим количеством проблемы, если Ваш EXE или DLLs содержат много ресурсов, но иначе, они не могут быть большой частью фактора на практике, учитывая относительный размер исполняемых файлов и доступной памяти, если Вы не говорите о DLLs, используемом партиями исполняемых файлов (как система DLLs).

Для рассеивания некоторой неправильной информации в других ответах:

  • UPX не будет влиять на Вашу способность работать на защищенных от DEP машинах.
  • UPX не будет влиять на способность главного антивирусного программного обеспечения, поскольку они поддерживают UPX-сжатые исполняемые файлы (а также другие исполняемые форматы сжатия).
  • UPX смог использовать сжатие LZMA в течение некоторого времени теперь (7zip's алгоритм сжатия), используйте - lzma переключатель.
28
задан Meraj al Maksud 6 October 2019 в 23:51
поделиться

2 ответа

В проекте Gemcutter у нас просто есть производственная ветка. Любые изменения, которые мы хотим видеть на рабочем сайте, объединяются в эту ветвь, а затем развертываются с помощью:

git push heroku production:master

Промежуточная ветвь служит той же цели для промежуточного сайта (также на Heroku)

32
ответ дан 28 November 2019 в 03:06
поделиться

Есть множество способов пойти об этом, и это действительно зависит от ваших предпочтений.

I ' Я дам вам одну возможную стратегию, которую я не знаю: учитывая, что у вас уже есть автоматическая промежуточная установка, использующая master, я бы предложил создать ветвь 'production'. Если вы хотите продвинуть исправление / функцию в рабочую среду, вы просто объедините тематическую ветку в свою «производственную» ветку.

git checkout production
git pull . my-topic-branch
(resolve any conflicts)

Когда вы будете готовы отправить этот код на рабочий сервер, вам следует пометить ветку, используя уникальное имя (возможно, с меткой времени). Затем вы просто отправляете производственную ветку в Heroku.

git checkout production
git tag release-200910201249

Я бы предложил создать сценарий или псевдоним git для автоматизации тегирования для временных меток, поскольку важно использовать согласованную схему именования. Я использую что-то вроде этого:

git config alias.dtag '!git tag release-`date "+%Y%m%d%H%M"`'

Это позволяет мне просто набрать git dtag , когда я хочу пометить выпуск меткой времени.

Вы можете просматривать свои теги с помощью git tag и просматривать их с помощью git show release-1234 . Для получения дополнительной информации о тегах запустите git help tag . Вы также можете найти это руководство Github по тегам. Я также рекомендовал бы ознакомиться с рабочими процессами других людей (вот отличное описание ) и выбрать то, что работает для вас.

7
ответ дан 28 November 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: