首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java泛型:类型推断性能

Java泛型:类型推断性能
EN

Stack Overflow用户
提问于 2013-05-22 13:47:56
回答 3查看 400关注 0票数 3

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

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

我意识到这些都是困难的(可能是消息不灵通的)问题,因此,欢迎任何意见。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-22 14:03:44

“泛型方法类型推断”成本(即,这个)是否与“泛型赋值类型推断”成本(即,这个)不同?

不是的。

我认为这种开销可以忽略不计,因为泛型的类型推断是在编译时完成的?

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

此外,就Java8中的“改进的类型推断”(即这一点)而言(由于

的),这是否也会对性能造成影响?

这也是零。没有关于它的‘也征集性能命中’。

票数 5
EN

Stack Overflow用户

发布于 2013-05-22 13:58:03

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

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

票数 4
EN

Stack Overflow用户

发布于 2013-05-22 14:05:51

普通的方法类型推断和构造函数类型推断(所谓的“菱形”)几乎是一样的,成本也应该一样。

类型推断仅在编译时完成。

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

Java 8推断要复杂得多,我预计编译器会变得明显变慢。慢了多少?-我们只能等着看了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16684330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档