В настоящее время я широко использую шаблон типа типа, чтобы быть частью, относящейся к производительности моего кода. Я разработал как минимум два потенциальных источника неэффективности.
-
Неявные параметры передаются по сообщениям. Я не знаю, действительно ли это происходит. Может быть, scalac может просто вставить неявные параметры там, где они используются, и удалить их из подписи метода. Вероятно, это невозможно в случаях, когда вы вставляете неявные параметры вручную, так как они могут быть разрешены только во время выполнения. Какие оптимизации применяются в отношении передачи неявных параметров?
-
Если экземпляр класса типа предоставляется
def
(в отличие отval
), объект должен быть воссоздан при каждом вызове "классифицированного по типу метода". Эта проблема может быть рассмотрена JVM, которая может оптимизировать создание объекта. Эта проблема также может быть рассмотрена с помощью scalac путем повторного использования этих объектов. Какие оптимизации применяются в отношении создания неявных объектов параметров?
И, конечно, при применении шаблона типа типа могут быть дополнительные источники неэффективности. Расскажите, пожалуйста, о них.