[geos-devel] Current project status
Norman Vine
nhv at cape.com
Sun Nov 24 21:29:03 EST 2002
Martin Davis writes:
>
> So my take on the statistics below is that GEOS is now somewhat faster than JTS
>
> > Yury A. Bychkov wrote
> >
> > Here are the performance results (P4-2.53):
> > n Pts: 256000 Executed in 4276 ms.
This is better but still a lot slower then the Jave
ie
on November 08 Martin Davis wrote:
> I'm running on a 1.1 GHz machine, not a 1.9 GHz box
> n Pts: 256000 Executed in 5307 ms
and this is before my early reject patch !
which means you should be getting ~4000 ms with the early reject
so the way I see it is Yury's 'C' code is running at best
at about 50% of the speed of the Java code.
Inlining the Coordinate, CoordinateList and Envelope Classes
< all methods except the toString method >
will make up this differance
Out of curiosity has anyone used a memory checker
to make sure we aren't leaking ?
Cheers
Norman
< trials of a 'C' hacker follows >
Test 1 - code as from todays CVS
n Pts: 1000000 Executed in 81988 ms.
% cumulative self self total
time seconds seconds calls s/call s/call name
54.55 20.15 20.15 364917628 0.00 0.00 Coordinate::Coordinate(Coordinate const&)
20.19 27.61 7.46 157410776 0.00 0.00 CoordinateList::getAt(int)
4.90 29.42 1.81 40942622 0.00 0.00 Envelope::init(double, double, double, double)
2.79 30.45 1.03 10352452 0.00 0.00 SegmentIntersector::addIntersections(Edge*, int, Edge*, int)
Test 2 - with Coordinate and CoordinateList Inlined < 30 % improvement >
n Pts: 1000000 Executed in 57642 ms.
% cumulative self self total
time seconds seconds calls s/call s/call name
16.67 1.21 1.21 2 0.60 0.62 RobustCGAlgorithms::isOnLine(Coordinate, CoordinateList)
15.84 2.36 1.15 2 0.57 0.57 Geometry::hasNullElements(CoordinateList)
11.02 3.16 0.80 10352452 0.00 0.00 SegmentIntersector::addIntersections(Edge*, int, Edge*, int)
10.61 3.93 0.77 40942622 0.00 0.00 Envelope::init(double, double, double, double)
9.78 4.64 0.71 27295080 0.00 0.00 Envelope::init(Coordinate, Coordinate)
Test3 - Coordinate, CoordinateList, Envelope inlined
n Pts: 1000000 Executed in 40978 ms.
% cumulative self self total
time seconds seconds calls s/call s/call name
25.87 2.22 2.22 2 1.11 1.15 RobustCGAlgorithms::isOnLine(Coordinate, CoordinateList)
24.48 4.32 2.10 2 1.05 1.05 Geometry::hasNullElements(CoordinateList)
20.75 6.10 1.78 10352452 0.00 0.00 SegmentIntersector::addIntersections(Edge*, int, Edge*, int)
7.81 6.77 0.67 17999888 0.00 0.00 RobustCGAlgorithms::orientationIndex(Coordinate, Coordinate, Coordinate)
7.69 7.43 0.66 4 0.17 0.17 RobustCGAlgorithms::isPointInRing(Coordinate, CoordinateList)
2.80 7.67 0.24 2 0.12 0.12 RobustCGAlgorithms::isCCW(CoordinateList)
2.80 7.91 0.24 2 0.12 0.12 GeometryTestFactory::createSineStar(double, double, double, double, int, int)
More information about the geos-devel
mailing list