Какое влияние на производительность оказывает использование шаблона классов типов в Scala

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

  1. Неявные параметры передаются вместе с вызовами сообщений. Не знаю, действительно ли это происходит. Возможно, scalac может просто вставить неявные параметры там, где они используются, и удалить их из сигнатуры метода. Это, вероятно, невозможно в тех случаях, когда вы вставляете неявные параметры вручную, поскольку они могут быть разрешены только во время выполнения. Какие оптимизации применяются при передаче неявных параметров ?

  2. Если экземпляр класса типа предоставляется с помощью def (в отличие от val ), объект имеет для воссоздания при каждом вызове «метода класса». Эта проблема может быть решена с помощью JVM, которая может оптимизировать создание объекта. Эту проблему также можно решить с помощью scalac путем повторного использования этих объектов. Какие оптимизации применяются в отношении создания неявных объектов параметров?

И, конечно, могут быть дополнительные источники неэффективности при применении шаблона класса типа. Расскажите, пожалуйста, о них.

13
задан ziggystar 17 February 2012 в 16:57
поделиться