R profiling使用.External2花费大量时间

时间:2016-04-05 14:56:56

标签: r performance profiling

我正在学习如何使用R分析,并在我的代码上运行Rprof命令。

summaryRprof函数显示使用.External2花费了大量时间。这是什么?此外,<Anonymous>花费的总时间占很大比例,有没有办法找出这是什么?

> summaryRprof("test")
$by.self
                        self.time self.pct total.time total.pct
".External2"                 4.30    27.74       4.30     27.74
"format.POSIXlt"             2.70    17.42       2.90     18.71
"which.min"                  2.38    15.35       4.12     26.58
"-"                          1.30     8.39       1.30      8.39
"order"                      1.16     7.48       1.16      7.48
"match"                      0.58     3.74       0.58      3.74
"file"                       0.44     2.84       0.44      2.84
"abs"                        0.40     2.58       0.40      2.58
"scan"                       0.30     1.94       0.30      1.94
"anyDuplicated.default"      0.20     1.29       0.20      1.29
"unique.default"             0.20     1.29       0.20      1.29
"unlist"                     0.18     1.16       0.20      1.29
"c"                          0.16     1.03       0.16      1.03
"data.frame"                 0.14     0.90       0.22      1.42
"structure"                  0.12     0.77       1.74     11.23
"as.POSIXct.POSIXlt"         0.12     0.77       0.12      0.77
"strptime"                   0.12     0.77       0.12      0.77
"as.character"               0.08     0.52       0.90      5.81
"make.unique"                0.08     0.52       0.16      1.03
"[.data.frame"               0.06     0.39       1.54      9.94
"<Anonymous>"                0.04     0.26       4.34     28.00
"lapply"                     0.04     0.26       1.70     10.97
"rbind"                      0.04     0.26       0.94      6.06
"as.POSIXlt.POSIXct"         0.04     0.26       0.04      0.26
"ifelse"                     0.04     0.26       0.04      0.26
"paste"                      0.02     0.13       0.92      5.94
"merge.data.frame"           0.02     0.13       0.56      3.61
"[<-.factor"                 0.02     0.13       0.52      3.35
"stopifnot"                  0.02     0.13       0.04      0.26
".deparseOpts"               0.02     0.13       0.02      0.13
".External"                  0.02     0.13       0.02      0.13
"close.connection"           0.02     0.13       0.02      0.13
"doTryCatch"                 0.02     0.13       0.02      0.13
"is.na"                      0.02     0.13       0.02      0.13
"is.na<-.default"            0.02     0.13       0.02      0.13
"mean"                       0.02     0.13       0.02      0.13
"seq.int"                    0.02     0.13       0.02      0.13
"sum"                        0.02     0.13       0.02      0.13
"sys.function"               0.02     0.13       0.02      0.13

$by.total
                        total.time total.pct self.time self.pct
"write.table"                 5.10     32.90      0.00     0.00
"<Anonymous>"                 4.34     28.00      0.04     0.26
".External2"                  4.30     27.74      4.30    27.74
"mapply"                      4.22     27.23      0.00     0.00
"head"                        4.16     26.84      0.00     0.00
"which.min"                   4.12     26.58      2.38    15.35
"eval"                        3.16     20.39      0.00     0.00
"eval.parent"                 3.14     20.26      0.00     0.00
"write.csv"                   3.14     20.26      0.00     0.00
"format"                      2.92     18.84      0.00     0.00
"format.POSIXlt"              2.90     18.71      2.70    17.42
"do.call"                     1.78     11.48      0.00     0.00
"structure"                   1.74     11.23      0.12     0.77
"lapply"                      1.70     10.97      0.04     0.26
"FUN"                         1.66     10.71      0.00     0.00
"format.POSIXct"              1.62     10.45      0.00     0.00
"[.data.frame"                1.54      9.94      0.06     0.39
"["                           1.54      9.94      0.00     0.00
"-"                           1.30      8.39      1.30     8.39
"order"                       1.16      7.48      1.16     7.48
"rbind"                       0.94      6.06      0.04     0.26
"paste"                       0.92      5.94      0.02     0.13
"as.character"                0.90      5.81      0.08     0.52
"read.csv"                    0.84      5.42      0.00     0.00
"read.table"                  0.84      5.42      0.00     0.00
"as.character.POSIXt"         0.82      5.29      0.00     0.00
"match"                       0.58      3.74      0.58     3.74
"merge.data.frame"            0.56      3.61      0.02     0.13
"merge"                       0.56      3.61      0.00     0.00
"[<-.factor"                  0.52      3.35      0.02     0.13
"[<-"                         0.52      3.35      0.00     0.00
"strftime"                    0.48      3.10      0.00     0.00
"file"                        0.44      2.84      0.44     2.84
"weekdays"                    0.42      2.71      0.00     0.00
"weekdays.POSIXt"             0.42      2.71      0.00     0.00
"abs"                         0.40      2.58      0.40     2.58
"unique"                      0.38      2.45      0.00     0.00
"scan"                        0.30      1.94      0.30     1.94
"data.frame"                  0.22      1.42      0.14     0.90
"cbind"                       0.22      1.42      0.00     0.00
"anyDuplicated.default"       0.20      1.29      0.20     1.29
"unique.default"              0.20      1.29      0.20     1.29
"unlist"                      0.20      1.29      0.18     1.16
"anyDuplicated"               0.20      1.29      0.00     0.00
"as.POSIXct"                  0.18      1.16      0.00     0.00
"as.POSIXlt"                  0.18      1.16      0.00     0.00
"c"                           0.16      1.03      0.16     1.03
"make.unique"                 0.16      1.03      0.08     0.52
"as.POSIXct.POSIXlt"          0.12      0.77      0.12     0.77
"strptime"                    0.12      0.77      0.12     0.77
"as.POSIXlt.character"        0.12      0.77      0.00     0.00
"object.size"                 0.12      0.77      0.00     0.00
"as.POSIXct.default"          0.10      0.65      0.00     0.00
"Ops.POSIXt"                  0.08      0.52      0.00     0.00
"type.convert"                0.08      0.52      0.00     0.00
"!="                          0.06      0.39      0.00     0.00
"as.POSIXlt.factor"           0.06      0.39      0.00     0.00
"as.POSIXlt.POSIXct"          0.04      0.26      0.04     0.26
"ifelse"                      0.04      0.26      0.04     0.26
"stopifnot"                   0.04      0.26      0.02     0.13
"$"                           0.04      0.26      0.00     0.00
"$.data.frame"                0.04      0.26      0.00     0.00
"[["                          0.04      0.26      0.00     0.00
"[[.data.frame"               0.04      0.26      0.00     0.00
"head.default"                0.04      0.26      0.00     0.00
".deparseOpts"                0.02      0.13      0.02     0.13
".External"                   0.02      0.13      0.02     0.13
"close.connection"            0.02      0.13      0.02     0.13
"doTryCatch"                  0.02      0.13      0.02     0.13
"is.na"                       0.02      0.13      0.02     0.13
"is.na<-.default"             0.02      0.13      0.02     0.13
"mean"                        0.02      0.13      0.02     0.13
"seq.int"                     0.02      0.13      0.02     0.13
"sum"                         0.02      0.13      0.02     0.13
"sys.function"                0.02      0.13      0.02     0.13
"%in%"                        0.02      0.13      0.00     0.00
".rs.getSingleClass"          0.02      0.13      0.00     0.00
"[.POSIXlt"                   0.02      0.13      0.00     0.00
"=="                          0.02      0.13      0.00     0.00
"close"                       0.02      0.13      0.00     0.00
"data.row.names"              0.02      0.13      0.00     0.00
"deparse"                     0.02      0.13      0.00     0.00
"factor"                      0.02      0.13      0.00     0.00
"is.na<-"                     0.02      0.13      0.00     0.00
"match.arg"                   0.02      0.13      0.00     0.00
"match.call"                  0.02      0.13      0.00     0.00
"pushBack"                    0.02      0.13      0.00     0.00
"seq"                         0.02      0.13      0.00     0.00
"seq.POSIXt"                  0.02      0.13      0.00     0.00
"simplify2array"              0.02      0.13      0.00     0.00
"tryCatch"                    0.02      0.13      0.00     0.00
"tryCatchList"                0.02      0.13      0.00     0.00
"tryCatchOne"                 0.02      0.13      0.00     0.00
"which"                       0.02      0.13      0.00     0.00

$sample.interval
[1] 0.02

$sampling.time
[1] 15.5

0 个答案:

没有答案