[GRASS-dev] v.what.rast speedup
Markus Neteler
neteler at fbk.eu
Mon Oct 22 04:59:37 EDT 2007
Glynn Clements wrote:
>
> Markus Neteler wrote:
>> >> >> > since v.what.rast is (for me) extremely slow
> ...
>> >> >> Maybe it's the qsort(), maybe it's the i,j loop within a loop.
> ...
>> >> > The loop is certainly inefficient.
> ...
>> > --- vector/v.what.rast/main.c patch
> ...
>> I have made a Spearfish test:
>>
>> g.region rast=elevation.10m
>> r.random elevation.10m vect=elevpnts n=5000 --o
>> v.db.addcol elevpnts col="height double precision"
>>
>> # old
>> time v.what.rast elevpnts rast=elevation.10m col=height
>> real 0m25.253s
>> user 0m24.756s
>> sys 0m0.308s
>>
>> # new
>> real 0m24.040s
>> user 0m23.707s
>> sys 0m0.297s
>>
>> Interestingly, timing rather identical (also for 1000). Using the DBF
>> driver here.
>
> It was subsequently suggested that it may be the database access which
> is the main performance issue. Personally, I suspect that is probably
> the case.
>
> You could try re-compiling the DBMI libraries with -DUSE_BUFFERED_IO
> to see if that helps at all.
>
It makes things worse: I have killed the job after 6minutes... (DBF).
Compiling again
without -DUSE_BUFFERED_IO brings me back to 25 seconds.
Running the procedure with SQLite backend as suggested:
time v.what.rast elevpnts rast=elevation.10m col=height
real 0m7.530s
user 0m6.992s
sys 0m0.373s
Running the same procedure connected to PostgreSQL server
on a different machine in intranet:
time v.what.rast elevpnts rast=elevation.10m col=height
real 0m14.085s
user 0m1.419s
sys 0m0.366s
Since SQLite wins, it is not only the DBMI. Still everything is not
extremely fast given that I tested 5000 points but need to work
with 300k points for my real work (ideally for several thousand
maps).
Markus
--
View this message in context: http://www.nabble.com/r.random%3A-now-with-optional-cover-map-parameter-tf4634057.html#a13339117
Sent from the Grass - Dev mailing list archive at Nabble.com.
More information about the grass-dev
mailing list