On 8/3/15 12:50 PM, John Colvin wrote:
On Monday, 3 August 2015 at 16:47:14 UTC, Adam D. Ruppe wrote:
You can try a few potential optimizations in the D version yourself
and see if it makes a difference.

Devirtualization has a very small impact. Test this by making `test`
take `SubFoo` and making `bar` final, or making `bar` a stand-alone
function.

That's not it.

Making SubFoo a final class and test take SubFoo gives a >10x speedup
for me.

Let's make sure we're all comparing apples to apples here.

FWIW, I suspect the inlining to be the most significant improvement, which is impossible for virtual functions in D.

ALSO, make SURE you are compiling in release mode, so you aren't calling a virtual invariant function before/after every call.

-Steve

Reply via email to