[geos-devel] gprof (missing attachment)

strk at refractions.net strk at refractions.net
Sun Feb 6 05:36:37 EST 2005

I've been working on Coordinate copies reduction.
The bigger cut has been done changing NodeMap Coordinate->Node
map to use Coordinate pointers instead of objects as keys.
This has been done also on other containers.
Also, some useless copies in deep-inside funx have been dropped.

For the buffer 2000 case Coordinate copies have been reduced
from 13151966 to 5973354.
Coordinate assignment operators was called 13068095 times before
1652108 now.

Time spent in copy constructor reduced from 1.89% to 0.90%.
Time spent in assignment operator reduced from 2.08% to 0.43%.

Also, profile output showed that the BufferSubgraph::copmuteDepths
was taking a lot. I've reconduced this to the use of a vector instead
of a set for taking track of visitedNodes. Changed this.

Total time from 62 secs reduced to 52 secs.

Now both buffer500 and buffer2000 show about the same structure of
timings (before visitedNodes change they were different, showing low

The top-most functions are Envelope::intersects and AbstractSTRtree::query.
Next come iterators.

Maybe we can get some more speed using random access for vectors instead
of iterators, which check for out-of-bound conditions. Also I'd inspect
the use of the 'foreach' standard algorithm when appropriate.


On Sat, Feb 05, 2005 at 12:30:13AM +0100, strk at refractions.net wrote:
> As usual attachment comes late, sorry.
> --strk;

> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel

More information about the geos-devel mailing list