[geos-devel] [Fwd: [Boost-users] [boost] Formal Review: Boost.Polygon starts today August 24, 2009]

Barend Gehrels Barend.Gehrels at geodan.nl
Tue Sep 1 19:21:53 EDT 2009


Hartmut Kaiser wrote:
>> Martin Davis wrote:
>>     
>>> Hmmm... GEOS comes off rather badly compared to GGL.  Is that because
>>>  of memory access issues?  Or perhaps the fact that less code is
>>> inlined?
>>>       
>> It's hard to judge, but I'm quite sure inlining is only a small and
>> minor optimisation available.
>> GEOS and GGL follow completely different programming paradigms.
>> GGL is strongly based on static polymorphism resolved and calculated in
>> compile-time. This increases changes that compilers will apply finest
>> possible optimisations.
>>     
>
> >From what I've seen in GEOS and GGL, GEOS is mostly relying on dynamic
> memory allocation, where GGL tries to avoid that. GEOS relies on runtime
> polymorphism, where GGL relies on compile time (static polymorphism). GEOS
> is built using Java-ish constructs, where GGL is build the C++ way...
>
> All of this influences the runtime behavior, but there might be more
> reasons. Please note, I didn't do any thorough analysis, all of this is just
> guessing.
>   
I do not know GEOS very well but I think that Hartmut is right here. GGL 
uses the std-library for storage of coordinates. If I'm right, GEOS 
calls a memory allocation for every point (of a polygon). And indeed GGL 
uses static polymorphism. The consequence of this is also that there is 
no polygon.area() function, but an area(polygon) function, taking any 
polygon which fulfills the polygon concept.

Regards, Barend


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/geos-devel/attachments/20090902/525bb3a0/attachment.html


More information about the geos-devel mailing list