[Rspatial-devel] new("SpatialGridDataFrame") time issue
Roger Bivand
Roger.Bivand at nhh.no
Sun Jan 22 23:32:38 CET 2012
With revision 1200, the same test is:
user system elapsed
7.763 0.346 8.119
but no validity checks are done. As may be sensible, something may be done
about validity checking, but an order of magnitude speedup is worth
having, I think.
Roger
On Sun, 22 Jan 2012, Roger Bivand wrote:
> Hi,
>
> Working with Rainer Krug on making readRAST6() in spgrass6 faster, we've
> identified an issue with time wasting in creating SGDF. For 2.14.1, sp
> 0.9-93, rgdal 0.7-8:
>
>> Rprof("readGDAL.out")
>> system.time(for (i in 1:50) SP27GTIF <-
> readGDAL(system.file("pictures/SP27GTIF.TIF", package = "rgdal")[1]))
> user system elapsed
> 122.961 4.678 131.383
>> Rprof("")
>> summaryRprof("readGDAL.out")
> $by.self
> self.time self.pct total.time total.pct
> "getGridIndex" 32.32 25.31 45.44 35.59
> "asMethod" 10.60 8.30 119.04 93.23
> "slot<-" 8.50 6.66 8.64 6.77
> "apply" 7.52 5.89 15.12 11.84
> "validityMethod" 7.24 5.67 120.30 94.22
> ".local" 6.40 5.01 22.92 17.95
> "structure" 5.56 4.35 5.58 4.37
> "expand.grid" 5.14 4.03 12.72 9.96
> "FUN" 4.86 3.81 4.86 3.81
> "initialize" 4.34 3.40 123.08 96.40
> "SpatialPixels" 3.06 2.40 96.18 75.33
> "aperm.default" 2.70 2.11 2.70 2.11
> "SpatialPoints" 2.54 1.99 49.16 38.50
> "gc" 2.52 1.97 2.52 1.97
> ....
> $by.total
> total.time total.pct self.time self.pct
> "system.time" 127.68 100.00 0.00 0.00
> "readGDAL" 127.64 99.97 0.00 0.00
> "new" 123.10 96.41 0.02 0.02
> "initialize" 123.08 96.40 4.34 3.40
> "SpatialGridDataFrame" 123.04 96.37 0.00 0.00
> "validObject" 120.42 94.31 0.00 0.00
> "validityMethod" 120.30 94.22 7.24 5.67
> "anyStrings" 120.30 94.22 0.00 0.00
> "as" 119.08 93.26 0.00 0.00
> "asMethod" 119.04 93.23 10.60 8.30
> "SpatialPixels" 96.18 75.33 3.06 2.40
> "nrow" 96.18 75.33 0.00 0.00
> "SpatialGrid" 59.22 46.38 0.00 0.00
> "SpatialPoints" 49.16 38.50 2.54 1.99
> "getGridIndex" 45.44 35.59 32.32 25.31
> "standardGeneric" 27.94 21.88 0.00 0.00
> "is" 26.28 20.58 0.02 0.02
> ".local" 22.92 17.95 6.40 5.01
> "coordinates" 22.92 17.95 0.00 0.00
> "do.call" 16.48 12.91 0.00 0.00
> ".bboxCoords" 15.16 11.87 0.02 0.02
> "t" 15.14 11.86 0.02 0.02
> "apply" 15.12 11.84 7.52 5.89
> "expand.grid" 12.72 9.96 5.14 4.03
> "slot<-" 8.64 6.77 8.50 6.66
> "structure" 5.58 4.37 5.56 4.35
>
>
> The getGridIndex() call is particularly odd, taking 25% of execution time.
> I've put the Rprof file on rspatial/misc. This looks like an S4 oddity to me.
> I can't see where the validity checks might recurse to trip calls to other
> classes. The validity check ought to be a no-brainer, really. I don't know
> when this happened, it may be caused by recent methods.
>
> Any ideas?
>
> Roger
>
>
--
Roger Bivand
Department of Economics, NHH Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no
More information about the Rspatial-devel
mailing list