Andrei Alexandrescu wrote:
Thanks for posting these interesting numbers. I seem to recall that interface dispach in D does a linear search in the interfaces list, so you may want to repeat your tests with a variable number of interfaces, and a variable position of the interface being used.
No, it is done with one indirection. interface IA { void foo(); } interface IB : IA { } class C : IA { void foo() { } } void test(C c) { c.foo(); } ======================================== test: enter 4,0 mov ECX,[EAX] call dword ptr 014h[ECX] leave ret