【发布时间】:2012-02-17 11:31:21
【问题描述】:
我目前正在广泛使用类型类模式作为我的代码中与性能相关的部分。我至少找出了两个潜在的低效率来源。
隐式参数随消息调用一起传递。我不知道这是否真的发生。也许 scalac 可以简单地在使用它们的地方插入隐式参数并将它们从方法签名中删除。在您手动插入隐式参数的情况下,这可能是不可能的,因为它们可能仅在运行时被解析。 在传递隐式参数方面应用了哪些优化?
如果类型类实例由
def提供(与val相反),则必须在每次调用“类型分类方法”时重新创建对象。 JVM 可能会解决这个问题,这可能会优化对象创建。 scalac 也可以通过重用这些对象来解决这个问题。 在创建隐式参数对象方面应用了哪些优化?
当然,在应用类型类模式时可能还有其他低效率的来源。请告诉我他们的情况。
【问题讨论】:
标签: scala optimization implicit scalac