[geos-devel] Current project status

Martin Davis mbdavis at VividSolutions.com
Sun Nov 24 17:46:52 EST 2002


Yep, good idea.  My gut feel is that there should be very few calls to the Coordinate constructor - most accesses to Coordinates in the algorithms should be by reference.  So go to it - maybe I'll have to retrieve my C compiler from the garbage after all!

Martin Davis, Senior Technical Specialist
Vivid Solutions Inc.
Suite #1A-2328 Government Street   Victoria, B.C.   V8T 5G5
Phone: (250) 385 6040    Fax: (250) 385 6046
EMail: mbdavis at vividsolutions.com  Web: www.vividsolutions.com


> -----Original Message-----
> From: Yury A. Bychkov [mailto:ybychkov at direct.ca]
> Sent: Sunday, November 24, 2002 2:42 PM
> To: GEOS Development List
> Subject: Re: [geos-devel] Current project status
> 
> 
> There still seems to be a very large number of useless 
> Coordinate() constructor
> calls. I'd suggest waiting so see if I can eliminate a large 
> portion of them
> easily enough (I'll know if a couple of days). Then I can add 
> self-intersection
> speedups and we'll see what the performance will be.
> 
> Yury
> 
> ----- Original Message -----
> From: "Martin Davis" <mbdavis at VividSolutions.com>
> To: "GEOS Development List" <geos-devel at geos.refractions.net>
> Sent: Sunday, November 24, 2002 2:37 PM
> Subject: RE: [geos-devel] Current project status
> 
> 
> So my take on the statistics below is that GEOS is now 
> somewhat faster than JTS
> (at least, JTS before the self-intersection check speedup).  
> So we may be at the
> point of diminishing returns for increasing performance using 
> the current
> algorithms.
> 
> The changes to incorporate the self-intersection check 
> speedup are relatively
> minor - I think we should incorporate them now. I will send 
> the code to Yury to
> port.
> 
> Martin Davis, Senior Technical Specialist
> Vivid Solutions Inc.
> Suite #1A-2328 Government Street   Victoria, B.C.   V8T 5G5
> Phone: (250) 385 6040    Fax: (250) 385 6046
> EMail: mbdavis at vividsolutions.com  Web: www.vividsolutions.com
> 
> 
> > -----Original Message-----
> > From: Yury A. Bychkov [mailto:ybychkov at direct.ca]
> > Sent: Sunday, November 24, 2002 2:59 AM
> > To: geos-devel at geos.refractions.net
> > Subject: [geos-devel] Current project status
> >
> >
> > 1. RobustLineIntersector has been updated.
> > 2. MonotoneChainIndexer::getChainStartIndices was a biggest
> > single contributor
> > to Coordinate() calls (~20% of total calls). I've replaced instances
> > CoordinateList with references to gauge performance increase
> > (See results
> > below).
> > 3. Currently I am redoing the CoordinateList (and calls to
> > its methods) with
> > respect to the suggestions on the list.
> >
> > Here are the performance results (P4-2.53):
> > No modifications:
> >  # overlapping MCs: 406
> >  # segment intersection tests: 226
> >  n Pts: 1000  Executed in     30 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 278
> >  n Pts: 2000  Executed in     50 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 248
> >  n Pts: 4000  Executed in    100 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 250
> >  n Pts: 8000  Executed in    150 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 272
> >  n Pts: 16000  Executed in    391 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 264
> >  n Pts: 32000  Executed in    751 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 236
> >  n Pts: 64000  Executed in   1513 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 264
> >  n Pts: 128000  Executed in   3395 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 238
> >  n Pts: 256000  Executed in   7120 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 232
> >  n Pts: 512000  Executed in  12788 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 232
> >  n Pts: 1024000  Executed in  25296 ms.
> >
> > New RobustLineIntersector:
> >  # overlapping MCs: 406
> >  # segment intersection tests: 226
> >  n Pts: 1000  Executed in     20 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 278
> >  n Pts: 2000  Executed in     40 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 248
> >  n Pts: 4000  Executed in     90 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 250
> >  n Pts: 8000  Executed in    130 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 272
> >  n Pts: 16000  Executed in    311 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 264
> >  n Pts: 32000  Executed in    621 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 236
> >  n Pts: 64000  Executed in   1252 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 264
> >  n Pts: 128000  Executed in   2754 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 238
> >  n Pts: 256000  Executed in   5688 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 232
> >  n Pts: 512000  Executed in  10895 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 232
> >  n Pts: 1024000  Executed in  22042 ms.
> >
> > CoordinateList instances replaced with references in
> > MonotoneChainIndexer; some
> > tweaking of CoordinateList:
> >  # overlapping MCs: 406
> >  # segment intersection tests: 226
> >  n Pts: 1000  Executed in     20 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 278
> >  n Pts: 2000  Executed in     30 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 248
> >  n Pts: 4000  Executed in     70 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 250
> >  n Pts: 8000  Executed in    120 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 272
> >  n Pts: 16000  Executed in    270 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 264
> >  n Pts: 32000  Executed in    500 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 236
> >  n Pts: 64000  Executed in    991 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 264
> >  n Pts: 128000  Executed in   2023 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 238
> >  n Pts: 256000  Executed in   4276 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 232
> >  n Pts: 512000  Executed in   7861 ms.
> >  # overlapping MCs: 406
> >  # segment intersection tests: 232
> >  n Pts: 1024000  Executed in  15993 ms.
> >
> >
> > Yury
> >
> >
> >
> > _______________________________________________
> > geos-devel mailing list
> > geos-devel at geos.refractions.net
> > http://geos.refractions.net/mailman/listinfo/geos-devel
> >
> 
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel
> 
> 
> 
> 
> _______________________________________________
> 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