mix compile.protocols
Объединяет все протоколы во всех путях.
Эта задача вызывается автоматически, если проект не отключает опцию :consolidate_protocols в своей конфигурации.
Объединение
Объединение протоколов полезно в производстве, когда не будет происходить динамической загрузки кода, эффективно оптимизируя обработку протоколов, не учитывая загрузку кода.
Эта задача объединяет все протоколы в пути кода и выводит новые двоичные файлы в указанную директорию. По умолчанию для обычных приложений это "_build/MIX_ENV/lib/YOUR_APP/consolidated", а для проектов типа "зонт" — "_build/MIX_ENV/consolidated".
В случае, если вы вручную компилируете протоколы или собираете релизы, вам нужно учитывать сгенерированные протоколы. Это можно сделать так:
$ elixir -pa _build/MIX_ENV/lib/YOUR_APP/consolidated -S mix run
Или в проектах типа "зонт":
$ elixir -pa _build/MIX_ENV/consolidated -S mix run
Вы можете проверить, что протокол объединён, проверив его атрибуты:
iex> Protocol.consolidated?(Enumerable) true
Краткое описание
Функции
- consolidated?()
Возвращает, были ли протоколы объединены хотя бы один раз.
Функции
consolidated?()Исходный код
Возвращает, были ли протоколы объединены хотя бы один раз.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.12.0/Mix.Tasks.Compile.Protocols.html