Implementing and optimizing a simple graph metric

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Thu Sep 19 01:59:43 PDT 2013


On Wednesday, 18 September 2013 at 17:13:28 UTC, bearophile wrote:
> How many times or how often do you need to call betweenness()? 
> If it's called only few times or once in a while then using the 
> GC is good enough. But if you have to call it many millions of 
> times, all those GC array allocations could cost some time, 
> even if they are small arrays. In this case allocating them on 
> the stack (or not allocating them, using externally allocated 
> buffers) helps.

I think millions of times is excessive. In my test code I have an 
example with a 50-node network calculating betweenness centrality 
10000 times, which takes under 1.5 seconds. So obviously if you 
scale up to millions, small improvements could make a difference, 
but it's not going to be on such a scale that it's worth 
prioritizing, at least for now. I think even 10000 calculations 
is excessive for any practical case I can think of.

You're right to call for the opportunity to pass a buffer, 
though, and I've enabled that. In the current test code it 
doesn't seem to improve anything, but that may be simply a matter 
of scale.


More information about the Digitalmars-d-announce mailing list