Django: что “загрузка” делает (в шаблонном файле)?

1 / Я принимал участие в проектах, в которых динамическое связывание и статическое связывание были сравнены, и разница не была определена достаточно маленькой, чтобы перейти на динамическое связывание (я не был частью теста, я просто знаю вывод)

2 / Динамическое связывание часто ассоциируется с PIC (позиционно-независимый код, код, который не нужно изменять в зависимости от адреса, по которому он загружен). В зависимости от архитектуры PIC может привести к другому замедлению, но это необходимо для того, чтобы получить выгоду от совместного использования динамически связанной библиотеки между двумя исполняемыми файлами (и даже двумя процессами одного исполняемого файла, если ОС использует рандомизацию адреса загрузки в качестве меры безопасности). Я не уверен, что все ОС позволяют разделить две концепции, но Solaris и Linux делают и ISTR, что HP-UX делает также.

3 / Я был в других проектах, которые использовали динамическое связывание для функции «простого патча». Но этот «легкий патч» делает распространение небольших исправлений немного проще и сложнее, чем кошмар версий. Нам часто приходилось настаивать на всем, а также отслеживать проблемы на сайте клиента, потому что была указана неправильная версия.

Я пришел к выводу, что я использовал исключение статического связывания:

  • для таких вещей, как плагины, которые зависят от динамического связывания

  • при совместном использовании важно (большие библиотеки, используемые несколькими процессами одновременно, такие как среда выполнения C / C ++, библиотеки GUI, ... которые часто управляются независимо и для которых строго определен ABI)

Если кто-то хочет использовать «легкий патч», я бы сказал, что библиотеки должны управляться так же, как большие библиотеки, описанные выше: они должны быть почти независимыми с определенным ABI, который не должен быть изменен исправлениями.

21
задан Vini.g.fer 28 June 2017 в 16:39
поделиться