Optimizing dynamically-dispatched calls with run-time type feedback

Optimizing dynamically-dispatched calls with run-time type feedback
复制标题

通过运行时类型反馈优化动态分派的调用

DOI:
10.1145/178243.178478
复制
发表时间:
1994
期刊:
SocioEconomic Challenges
影响因子:
--
通讯作者:
D. Ungar
D. Ungar
中科院分区:
--
文献类型:
--
作者:
Urs Hölzle;D. Ungar

文献摘要

被引文献

相似文献

Abstrach 面向对象的程序很难优化,因为它们执行许多动态分派的调用。这些调用不能轻易消除,因为编译器不知道在运行时将调用哪个被调用者。我们开发了一种简单的技术,可以将类型信息从运行时系统反馈给编译器。通过这种类型反馈,编译器可以内联任何动态分派的调用。我们的编译器极大地降低了一组大型 SELF 应用程序的调用频率(降低了 3.6 倍),并将性能提高了 1.7 倍。我们相信,类型反馈可以显着降低调用频率并提高大多数其他面向对象语言(静态类型或非静态类型)以及具有类型相关操作(例如泛型算术)的语言的性能。
Abstrach Object-oriented programs are difficult to optimize because they execute many dynamically-dispatched calls. These calls cannot easily be eliminated because the compiler does not know which callee will be invoked at runtime. We have developed a simple technique that feeds back type information from the runtime system to the compiler. With this type feedback, the compiler can inline any dynamically-dispatched call. Our compiler drastically reduces the calI frequency of a suite of large SELF applications (by a factor of 3.6) and improves performance by a factor of 1.7. We believe that type feedback could significantly reduce call frequencies and improve performance for most other objectoriented languages (statically-typed or not) as well as for languages with type-dependent operations such as generic arithmetic.