[geos-devel] Performance of GEOS compared to JTS (Report, Nov. 8)

Norman Vine nhv at cape.com
Tue Nov 19 10:42:13 EST 2002


Norman Vine wrote:
> 
> I did some major hacking on the code
> machine: PIII 733 Cygwin gcc 3.2 -O3
> 
> 
> I'll clean up what I did 'a little' and post a tarball somewhere tomorrow
> so others can play.

Here is the promised tarball
This is not necessarily 'pretty' but should be useful
for comparison purposes  < This won't stay here long >
http://www.vso.cape.com/~nhv/files/geos-1.tar.gz

 
I am still surprised at how often some functions are called
signOfDet2x2                      13 times 
addIntersections           5

Note that before I did a little rearanging signOfDet2x2
was called 17 times per point but ...... since this code
is now dominated by the Determinate code if the Java
performance is still close My guess is that for some reason
the Java code is calling the determinate calculation far fewer 
times

Norman

this is against a 1000000 point SineStar

 %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
 75.24      1.55     1.55 13352204     0.00     0.00  RobustDeterminant::signOfDet2x2(double&, double&, double&, double&)
  9.71      1.75     0.20  5176115     0.00     0.00  SegmentIntersector::addIntersections(Edge*, int, Edge*, int)
  5.83      1.87     0.12        2     0.06     0.06  LineString::computeEnvelopeInternal()
  3.88      1.95     0.08        1     0.08     0.08  GeometryTestFactory::createSineStar(double, double, double, double, int, int)
  2.91      2.01     0.06  1999968     0.00     0.00  SegmentIntersector::isTrivialIntersection(Edge*, int, Edge*, int)
  0.97      2.03     0.02        2     0.01     0.01  Geometry::hasNullElements(CoordinateList)
  0.49      2.04     0.01        6     0.00     0.00  RobustCGAlgorithms::RobustCGAlgorithms()
  0.49      2.05     0.01        2     0.01     0.01  LineString::LineString(CoordinateList, PrecisionModel, int)
  0.49      2.06     0.01        2     0.01     0.01  GeometryGraph::addPolygonRing(LinearRing*, int, int)
  0.00      2.06     0.00  5176119     0.00     0.00  LineIntersector::hasIntersection()





More information about the geos-devel mailing list