【24h】

Efficient multiple and predicated dispatching

机译:高效的多重谓词调度

获取原文
获取外文期刊封面目录资料

摘要

The speed of message dispatching is an important issue in the overall performance of object-oriented programs. We have developed an algorithm for constructing efficient dispatch functions that combines novel algorithms for efficient single dispatching, multiple dispatching, and predicate dispatching. Our algorithm first reduces methods written in the general predicate dispatching model (which generalizes single dispatching, multiple dispatching, predicate classes and classifiers, and pattern-matching) into ones written using a simpler multimethod dispatching model. Our algorithm then computes a strategy for implementing multiple dispatching in terms of sequences of single dispatches, representing the strategy as a lookup DAG. Finally, our algorithm computes an implementation strategy separately for each of the single dispatches, producing for each dispatch a dispatch tree, which is a binary decision tree blending class identity tests, class range tests, and table lookups. Our algorithm exploits any available static information (from type declarations or class analysis) to prune unreachable paths from the lookup DAG, and uses any available dynamic profile information to minimize the expected time to search the dispatch trees. We measure the effectiveness of our dispatching algorithms on a collection of large Cecil programs, compiled by the Vortex optimizing compiler, showing improvements of up to 30% over already heavily optimized baseline versions.

机译:

消息调度的速度是面向对象程序的整体性能中的重要问题。我们已经开发了一种用于构造高效调度功能的算法,该算法结合了用于高效单调度,多调度和谓词调度的新颖算法。我们的算法首先将用通用谓词调度模型编写的方法(该方法概括了单个调度,多个调度,谓词类和分类器以及模式匹配)简化为使用更简单的多方法调度模型编写的方法。然后,我们的算法会根据一次调度的顺序来计算用于实施多个调度的策略,将其表示为查找DAG 。最后,我们的算法为每个单独的调度分别计算一个实现策略,为每个调度生成一个调度树,它是一个混合了类身份测试,类范围测试和表查找的二进制决策树。我们的算法利用任何可用的静态信息(来自类型声明或类分析)来修剪查找DAG中不可访问的路径,并使用任何可用的动态配置文件信息来最大程度地减少预期的搜索分发树的时间。在由Vortex优化编译器编译的大型Cecil程序集合上,我们评估了调度算法的有效性,与经过高度优化的基准版本相比,该算法最多可提高30%。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号