Disable GC entirely
bearophile
bearophileHUGS at lycos.com
Wed Apr 10 17:26:54 PDT 2013
Walter Bright:
> On 4/10/2013 4:00 AM, Manu wrote:
>> It doesn't have all sources. It could load a library. That can
>> never be guaranteed.
>
> Currently, a virtual call is done with:
>
> (*vtbl[i])(args...)
>
> It makes me wonder if the following would be faster:
>
> method_fp = vtbl[i];
> if (method_fp == &method)
> method(args...)
> else
> (*method_fp)(args...)
>
> Anyone care to dummy this up and run a benchmark?
It's important to repeat experiments, but I think it's also
interesting to take a look at the very extensive amount of
experiments already done on such matters since Self virtual
machines. The relevant part of the source code of open source
JavaVM is worth looking at.
http://en.wikipedia.org/wiki/Inline_caching
http://www.azulsystems.com/blog/cliff/2010-04-08-inline-caches-and-call-site-optimization
http://extras.springer.com/2000/978-3-540-67660-7/papers/1628/16280258.pdf
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.3108&rep=rep1&type=pdf
The benchmarking should be done with a both few different little
synthetic programs, and one largish program that used virtual
calls a lot.
Bye,
bearophile
More information about the Digitalmars-d
mailing list