>X<-data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3185955170.25709258305.05709258305.0Vcells641335749.022343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184275170.15709258305.05709258305.0Vcells640844548.922343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on integer+10x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.001188
0.0013595
0.0017808
0.0015495
0.002058
0.009749
2
apply+range
0.036074
0.0369740
0.0384891
0.0374310
0.037765
0.112069
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
30.36532
27.19676
21.61363
24.15682
18.35034
11.49544
Table: Benchmarking of rowRanges() and apply+range() on integer+10x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.001189
0.0014305
0.0019098
0.001948
0.0020940
0.011684
2
apply+range
0.036328
0.0372705
0.0391010
0.037737
0.0383145
0.145866
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
30.55341
26.05418
20.47367
19.37218
18.29728
12.48425
Figure: Benchmarking of colRanges() and apply+range() on integer+10x10 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on integer+10x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
1.188
1.3595
1.78078
1.5495
2.058
9.749
2
rowRanges
1.189
1.4305
1.90982
1.9480
2.094
11.684
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.00000
1.000000
1.000000
2
rowRanges
1.000842
1.052225
1.072463
1.25718
1.017493
1.198482
Figure: Benchmarking of colRanges() and rowRanges() on integer+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x100 integer matrix
>X<-data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells31828281705709258305.05709258305.0Vcells60249464622343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3182822170.05709258305.05709258305.0Vcells602998946.122343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on integer+100x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.019493
0.0204015
0.0211931
0.021145
0.0216250
0.034272
2
apply+range
0.286671
0.2895970
0.2955994
0.291265
0.2943575
0.418665
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
14.70636
14.19489
13.94793
13.77465
13.61191
12.21595
Table: Benchmarking of rowRanges() and apply+range() on integer+100x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.019008
0.0200585
0.0208961
0.0207775
0.021445
0.032492
2
apply+range
0.289331
0.2915570
0.2983378
0.2932490
0.296419
0.470623
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
15.22154
14.53533
14.27718
14.11378
13.82229
14.48427
Figure: Benchmarking of colRanges() and apply+range() on integer+100x100 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on integer+100x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
2
rowRanges
19.008
20.0585
20.89613
20.7775
21.445
32.492
1
colRanges
19.493
20.4015
21.19306
21.1450
21.625
34.272
expr
min
lq
mean
median
uq
max
2
rowRanges
1.000000
1.0000
1.00000
1.000000
1.000000
1.000000
1
colRanges
1.025516
1.0171
1.01421
1.017687
1.008394
1.054783
Figure: Benchmarking of colRanges() and rowRanges() on integer+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x10 integer matrix
>X<-data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3183561170.15709258305.05709258305.0Vcells602846646.022343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3183552170.15709258305.05709258305.0Vcells603350446.122343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on integer+1000x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.014935
0.0152270
0.0157857
0.0157040
0.0158965
0.030208
2
apply+range
0.109673
0.1113615
0.1147352
0.1141055
0.1150540
0.192582
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+range
7.343355
7.313423
7.268316
7.266015
7.237694
6.375199
Table: Benchmarking of rowRanges() and apply+range() on integer+1000x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.016718
0.0171375
0.0177167
0.017611
0.017921
0.031567
2
apply+range
0.109371
0.1112560
0.1151728
0.114329
0.115622
0.192081
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.000000
1.000000
1.000000
1.00000
1.000000
2
apply+range
6.54211
6.491962
6.500791
6.491909
6.45176
6.084867
Figure: Benchmarking of colRanges() and apply+range() on integer+1000x10 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on integer+1000x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
14.935
15.2270
15.78566
15.704
15.8965
30.208
2
rowRanges
16.718
17.1375
17.71674
17.611
17.9210
31.567
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
rowRanges
1.119384
1.125468
1.122331
1.121434
1.127355
1.044988
Figure: Benchmarking of colRanges() and rowRanges() on integer+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
10x1000 integer matrix
>X<-data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3183746170.15709258305.05709258305.0Vcells602913846.022343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3183740170.15709258305.05709258305.0Vcells603418146.122343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on integer+10x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.043947
0.045743
0.0474114
0.0472785
0.048195
0.061508
2
apply+range
1.967796
2.010960
2.1402157
2.0420700
2.140857
7.481601
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.0000
2
apply+range
44.77657
43.96214
45.14138
43.19236
44.42073
121.6362
Table: Benchmarking of rowRanges() and apply+range() on integer+10x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.041714
0.0435925
0.0460086
0.0449345
0.046621
0.106088
2
apply+range
1.946157
1.9968740
2.1388868
2.0386435
2.138240
7.513914
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.00000
1.0000
1.00000
2
apply+range
46.65477
45.80774
46.48884
45.36923
45.8643
70.82718
Figure: Benchmarking of colRanges() and apply+range() on integer+10x1000 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on integer+10x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
2
rowRanges
41.714
43.5925
46.00861
44.9345
46.621
106.088
1
colRanges
43.947
45.7430
47.41139
47.2785
48.195
61.508
expr
min
lq
mean
median
uq
max
2
rowRanges
1.000000
1.000000
1.00000
1.000000
1.000000
1.0000000
1
colRanges
1.053531
1.049332
1.03049
1.052165
1.033762
0.5797828
Figure: Benchmarking of colRanges() and rowRanges() on integer+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x1000 integer matrix
>X<-data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3183930170.15709258305.05709258305.0Vcells602962146.122343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3183924170.15709258305.05709258305.0Vcells607966446.422343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on integer+100x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.195850
0.1981605
0.2072418
0.2039755
0.2098685
0.258956
2
apply+range
2.683579
2.7374205
2.9877983
2.8024365
2.8899875
17.625025
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
13.70222
13.81416
14.41697
13.73908
13.77047
68.06185
Table: Benchmarking of rowRanges() and apply+range() on integer+100x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.190614
0.194564
0.2014488
0.201166
0.203994
0.249796
2
apply+range
2.687045
2.764858
3.0294722
2.848991
2.915337
18.072235
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
14.09679
14.21053
15.03842
14.16239
14.29129
72.34798
Figure: Benchmarking of colRanges() and apply+range() on integer+100x1000 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on integer+100x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
2
rowRanges
190.614
194.5640
201.4488
201.1660
203.9940
249.796
1
colRanges
195.850
198.1605
207.2418
203.9755
209.8685
258.956
expr
min
lq
mean
median
uq
max
2
rowRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.00000
1
colRanges
1.027469
1.018485
1.028757
1.013966
1.028797
1.03667
Figure: Benchmarking of colRanges() and rowRanges() on integer+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x100 integer matrix
>X<-data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184122170.15709258305.05709258305.0Vcells603018346.122343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184116170.15709258305.05709258305.0Vcells608022646.422343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on integer+1000x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.141058
0.1422235
0.1504843
0.1427965
0.1485420
0.192611
2
apply+range
0.902127
0.9093035
1.0440243
0.9193610
0.9761505
9.368515
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.00000
1.000000
1.00000
2
apply+range
6.395433
6.393483
6.937761
6.43826
6.571545
48.63956
Table: Benchmarking of rowRanges() and apply+range() on integer+1000x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.149136
0.150664
0.1591479
0.153410
0.156948
0.203205
2
apply+range
0.909309
0.942989
1.0766903
0.957465
0.996298
9.315277
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.000000
1.000000
1.000000
1.00000
1.00000
2
apply+range
6.09718
6.258887
6.765345
6.241216
6.34795
45.84177
Figure: Benchmarking of colRanges() and apply+range() on integer+1000x100 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on integer+1000x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
141.058
142.2235
150.4843
142.7965
148.542
192.611
2
rowRanges
149.136
150.6640
159.1479
153.4100
156.948
203.205
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.000000
1.00000
1.000000
2
rowRanges
1.057267
1.059347
1.057571
1.074326
1.05659
1.055002
Figure: Benchmarking of colRanges() and rowRanges() on integer+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
>X<-data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184330170.15709258305.05709258305.0Vcells614653246.922343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184315170.15709258305.05709258305.0Vcells614666046.922343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on double+10x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.001233
0.0015645
0.002038
0.0019235
0.0022495
0.010014
2
apply+range
0.036716
0.0382100
0.039597
0.0386610
0.0392060
0.117575
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.0000
1.00000
1.00000
2
apply+range
29.77778
24.42314
19.42906
20.0993
17.42876
11.74106
Table: Benchmarking of rowRanges() and apply+range() on double+10x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.001226
0.001625
0.0021325
0.0021420
0.002341
0.010143
2
apply+range
0.036255
0.037761
0.0391419
0.0381995
0.038659
0.111980
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
29.57178
23.23754
18.35502
17.83357
16.51388
11.04013
Figure: Benchmarking of colRanges() and apply+range() on double+10x10 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on double+10x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
1.233
1.5645
2.03803
1.9235
2.2495
10.014
2
rowRanges
1.226
1.6250
2.13249
2.1420
2.3410
10.143
expr
min
lq
mean
median
uq
max
1
colRanges
1.0000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
rowRanges
0.9943228
1.038671
1.046349
1.113595
1.040676
1.012882
Figure: Benchmarking of colRanges() and rowRanges() on double+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x100 double matrix
>X<-data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184510170.15709258305.05709258305.0Vcells614664446.922343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184504170.15709258305.05709258305.0Vcells615668747.022343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on double+100x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.016974
0.0177975
0.0190318
0.018428
0.0191705
0.062640
2
apply+range
0.324943
0.3326065
0.3440279
0.337524
0.3444030
0.504698
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
19.14357
18.68838
18.07643
18.31582
17.96526
8.05712
Table: Benchmarking of rowRanges() and apply+range() on double+100x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.021905
0.0226085
0.023331
0.0231800
0.0236245
0.032950
2
apply+range
0.286434
0.2896050
0.296664
0.2925475
0.2960620
0.437018
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
13.07619
12.80956
12.71547
12.62069
12.53199
13.26307
Figure: Benchmarking of colRanges() and apply+range() on double+100x100 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on double+100x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
16.974
17.7975
19.03185
18.428
19.1705
62.64
2
rowRanges
21.905
22.6085
23.33095
23.180
23.6245
32.95
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.00000
1.000000
1.000000
1.0000000
2
rowRanges
1.290503
1.270319
1.22589
1.257869
1.232336
0.5260217
Figure: Benchmarking of colRanges() and rowRanges() on double+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x10 double matrix
>X<-data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184703170.15709258305.05709258305.0Vcells614753347.022343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184694170.15709258305.05709258305.0Vcells615757147.022343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on double+1000x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.012952
0.0133565
0.0143408
0.0138830
0.0143820
0.038035
2
apply+range
0.161635
0.1642280
0.1687233
0.1665045
0.1690595
0.262972
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.000000
2
apply+range
12.47954
12.29574
11.76522
11.99341
11.75494
6.913948
Table: Benchmarking of rowRanges() and apply+range() on double+1000x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.019130
0.0195665
0.0201674
0.0201305
0.0204175
0.035807
2
apply+range
0.120754
0.1231620
0.1267325
0.1247645
0.1275775
0.209332
expr
min
lq
mean
median
uq
max
1
rowRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.00000
2
apply+range
6.312284
6.294534
6.284044
6.197785
6.248439
5.84612
Figure: Benchmarking of colRanges() and apply+range() on double+1000x10 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on double+1000x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
12.952
13.3565
14.34085
13.8830
14.3820
38.035
2
rowRanges
19.130
19.5665
20.16735
20.1305
20.4175
35.807
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.0000000
2
rowRanges
1.476992
1.464942
1.406287
1.450011
1.419657
0.9414224
Figure: Benchmarking of colRanges() and rowRanges() on double+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
10x1000 double matrix
>X<-data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184888170.15709258305.05709258305.0Vcells614855747.022343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3184882170.15709258305.05709258305.0Vcells615860047.022343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on double+10x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.043253
0.0467135
0.0487173
0.048314
0.0497255
0.068454
2
apply+range
1.879370
1.9707360
2.1020929
2.035511
2.1187615
7.015015
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.0000
2
apply+range
43.45063
42.18772
43.14884
42.13086
42.60915
102.4778
Table: Benchmarking of rowRanges() and apply+range() on double+10x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.042235
0.0449375
0.0477133
0.04675
0.04879
0.067657
2
apply+range
1.898994
1.9515945
2.1202086
2.02335
2.11813
7.952888
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.0000
1.0000
1.0000
2
apply+range
44.96257
43.42908
44.43641
43.2802
43.4132
117.5472
Figure: Benchmarking of colRanges() and apply+range() on double+10x1000 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on double+10x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
2
rowRanges
42.235
44.9375
47.71332
46.750
48.7900
67.657
1
colRanges
43.253
46.7135
48.71725
48.314
49.7255
68.454
expr
min
lq
mean
median
uq
max
2
rowRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.00000
1
colRanges
1.024103
1.039522
1.021041
1.033454
1.019174
1.01178
Figure: Benchmarking of colRanges() and rowRanges() on double+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x1000 double matrix
>X<-data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3185072170.25709258305.05709258305.0Vcells614867847.022343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3185066170.25709258305.05709258305.0Vcells624872147.722343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on double+100x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.179437
0.189588
0.201289
0.1946985
0.201708
0.279644
2
apply+range
3.073336
3.240317
3.730899
3.3119565
3.515820
19.493263
expr
min
lq
mean
median
uq
max
1
colRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
17.12766
17.09136
18.53503
17.01069
17.43025
69.70742
Table: Benchmarking of rowRanges() and apply+range() on double+100x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.215885
0.225069
0.238594
0.2286225
0.241789
0.322489
2
apply+range
2.653263
2.766923
3.225074
2.8195575
2.957310
18.589922
expr
min
lq
mean
median
uq
max
1
rowRanges
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+range
12.29017
12.29367
13.51699
12.33281
12.23095
57.64514
Figure: Benchmarking of colRanges() and apply+range() on double+100x1000 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on double+100x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
179.437
189.588
201.289
194.6985
201.708
279.644
2
rowRanges
215.885
225.069
238.594
228.6225
241.789
322.489
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.00000
1.000000
1.000000
1.000000
2
rowRanges
1.203124
1.187148
1.18533
1.174239
1.198708
1.153213
Figure: Benchmarking of colRanges() and rowRanges() on double+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x100 double matrix
>X<-data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3185267170.25709258305.05709258305.0Vcells614989147.022343563170.556666022432.4>colStats<- microbenchmark(colRanges= colRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=2L,
+FUN=range, na.rm=FALSE), unit="ms")
>X<- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3185258170.25709258305.05709258305.0Vcells624992947.722343563170.556666022432.4>rowStats<- microbenchmark(rowRanges= rowRanges(X, na.rm=FALSE), `apply+range`= apply(X, MARGIN=1L,
+FUN=range, na.rm=FALSE), unit="ms")
Table: Benchmarking of colRanges() and apply+range() on double+1000x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
0.120533
0.122163
0.1291061
0.123614
0.1341775
0.164952
2
apply+range
0.981820
0.994169
1.1872157
1.017043
1.1041030
7.618334
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.00000
2
apply+range
8.145653
8.138053
9.195659
8.227575
8.228675
46.18516
Table: Benchmarking of rowRanges() and apply+range() on double+1000x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
rowRanges
0.174045
0.175108
0.1864741
0.176347
0.193471
0.311685
2
apply+range
1.011355
1.024305
1.2291105
1.053208
1.153560
7.734844
expr
min
lq
mean
median
uq
max
1
rowRanges
1.000000
1.000000
1.00000
1.000000
1.000000
1.00000
2
apply+range
5.810882
5.849561
6.59132
5.972359
5.962441
24.81622
Figure: Benchmarking of colRanges() and apply+range() on double+1000x100 data as well as rowRanges() and apply+range() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.
Table: Benchmarking of colRanges() and rowRanges() on double+1000x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
expr
min
lq
mean
median
uq
max
1
colRanges
120.533
122.163
129.1061
123.614
134.1775
164.952
2
rowRanges
174.045
175.108
186.4741
176.347
193.4710
311.685
expr
min
lq
mean
median
uq
max
1
colRanges
1.000000
1.000000
1.000000
1.000000
1.000000
1.00000
2
rowRanges
1.443961
1.433396
1.444348
1.426594
1.441903
1.88955
Figure: Benchmarking of colRanges() and rowRanges() on double+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.