我目前正在寻找实现动态调度的各种方法。
据我所知,有两种“简单”的方法可以实现这一点:
- 虚函数表,如 C++ 中的
- Message Dispatcher,就像在 SmallTalk 中一样(这有点类似于 Python 将方法存储为属性的想法
__dict__
)
我会注意到,据我所知,选择 VFT 是因为它们执行合理且易于实现(也因为它们非常适合 C++ 单独编译模型),而不是因为它们是最快的方法。
我已经阅读了几篇文章和出版物,但是大多数都是“旧的”(我读到的最后一篇文章(*)提到了使用 Pentium 200MHz ...嗯),所以我怀疑它们是否代表了最先进的技术除非研究陷入僵局。
我对感兴趣:
- 动态调度策略,如果它们支持多方法就更好了。
- 各种策略的基准
我对最近的文章和不寻常的策略特别感兴趣(即使它们没有被证明是有效的)。
欢迎出版物,如果它们可以免费获得会更好,否则对所呈现的技术和结果的总结会很棒。
也欢迎真正编译器实现的技术文章。
(*)这篇关于 Eiffel 的文章说明了整个程序分析如何帮助删除虚拟呼叫站点。