Java泛型:类型推断性能

Java泛型:类型推断性能,java,performance,Java,Performance,我想知道Java 7中泛型类型推断的性能损失是什么。“泛型方法类型推断”成本(即)是否不同于“泛型赋值类型推断”成本(即)?我想,由于泛型的类型推断是在编译时完成的,所以成本可以忽略不计 此外,就Java8中的“改进的类型推断”(即)而言(由于lambda的原因),这是否也会对性能造成影响?Java8和Java7中类型推断的性能成本有何不同 我意识到这些问题很难回答(而且可能是信息不灵通的),因此欢迎您的任何意见。正如您所想,泛型在编译过程中会被删除,之后只有纯(非泛型)类 Java7中的类型推

我想知道Java 7中泛型类型推断的性能损失是什么。“泛型方法类型推断”成本(即)是否不同于“泛型赋值类型推断”成本(即)?我想,由于泛型的类型推断是在编译时完成的,所以成本可以忽略不计

此外,就Java8中的“改进的类型推断”(即)而言(由于lambda的原因),这是否也会对性能造成影响?Java8和Java7中类型推断的性能成本有何不同


我意识到这些问题很难回答(而且可能是信息不灵通的),因此欢迎您的任何意见。

正如您所想,泛型在编译过程中会被删除,之后只有纯(非泛型)类

Java7中的类型推断执行起来非常简单(当然仍然是在编译期间),因此它根本不会影响性能

“泛型方法类型推断”成本(即此)是否不同于“泛型赋值类型推断”成本(即此)

没有

我想,由于泛型的类型推断是在编译时完成的,所以成本可以忽略不计

因此,除非计算编译时间,否则成本为零

另外,就Java8中的“改进的类型推断”(即,这一点)而言(由于lambda的原因),这是否也会对性能造成影响


这也是零。关于它,没有“也会对性能造成影响”。

正常的方法类型推断和构造函数类型推断(所谓的“菱形”)基本相同,成本也应该相同

类型推断仅在编译时完成

Java7推理规则相当复杂,人们可以发明一些用例,这些用例将花费编译器一些时间来理解。然而,现实世界中的大多数代码并不复杂,编译器通常可以很快地推断出它们

Java8推理要复杂得多,我希望编译器会明显变慢。慢了多少我们得拭目以待