The R Project SVN R

Rev

Rev 76362 | Rev 77541 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 76362 Rev 76387
Line 232... Line 232...
232
    system.time(S <- sum(x31)) # ~ 2 sec
232
    system.time(S <- sum(x31)) # ~ 2 sec
233
    system.time(S.4 <- sum(x31, x31, x31, x31)) # 8 sec
233
    system.time(S.4 <- sum(x31, x31, x31, x31)) # 8 sec
234
    stopifnot(is.integer(x31),
234
    stopifnot(is.integer(x31),
235
              identical(S,   2^62),
235
              identical(S,   2^62),
236
              identical(S.4, 2^64))
236
              identical(S.4, 2^64))
237
    system.time(x32 <- c(x31, x31)) # 14 sec  and 16 GB
237
    system.time(x32 <- c(x31, x31)) # 13 user | 20.8 elapsed  (and 16 GB)
238
    rm(x31)# now,  sum vvv  will switch to use irsum() [double accumulator]
238
    rm(x31)# now,  sum vvv  will switch to use irsum() [double accumulator]
239
    system.time(S.2 <- sum(x32))
239
    system.time(S.2 <- sum(x32)) # 8 sec
240
    stopifnot(S.2 == 2^63)
240
    stopifnot(S.2 == 2^63)
241
    rm(x32)
241
    rm(x32)
242
})
242
})
243
 
243
 
244
 
244
 
245
## seq() remaining integer: (PR 17497, comment #9)
245
## seq() remaining integer: (PR 17497, comment #9)
246
if(availableGB > 16) withAutoprint({
246
if(availableGB > 16) withAutoprint({
247
    i <- as.integer(2^30)
247
    i <- as.integer(2^30)
248
    system.time(i2.31 <- seq(-i, by=1L, length=2*i+1)) # 30.6 sec elapsed
248
    system.time(i2.31 <- seq(-i, by=1L, length=2*i+1)) # 11.1 user | 19.2 elapsed
249
    object.size(i2.31) # 8'589'934'648 bytes [ was 17.17 GB in R <= 3.5.x ]
249
    object.size(i2.31) # 8'589'934'648 bytes [ was 17.17 GB in R <= 3.5.x ]
250
    stopifnot(is.integer(i2.31),  i2.31[1] == -i,  i2.31[length(i2.31)] == i)
250
    stopifnot(is.integer(i2.31),  i2.31[1] == -i,  i2.31[length(i2.31)] == i)
251
 
251
 
252
    ## pmax(), pmin() with long vectors, PR 17533
252
    ## pmax(), pmin() with long vectors, PR 17533
253
    if(availableGB > 24) withAutoprint({
253
    if(availableGB > 24) withAutoprint({
254
        system.time(i2.31 <- pmin(i2.31, 0L)) # 7.1 sec
254
        system.time(i2.31 <- pmin(i2.31, 0L)) # 7.2 sec user | 11.2 elapsed
255
        str(i2.31)
255
        str(i2.31)
256
        system.time(stopifnot(i2.31[(i+1):length(i2.31)] == 0)) # 16.7 sec
256
        system.time(stopifnot(i2.31[(i+1):length(i2.31)] == 0)) # 16.7 user | 28.0 elapsed
257
    })
257
    })
258
})
258
})
259
 
259
 
260
 
260
 
261
## match(<long character>, *)  PR#17552
261
## match(<long character>, *)  PR#17552
262
if(availableGB > 44) { ## seen 40 G ('RES')
262
if(availableGB > 44) withAutoprint({ ## seen 40 G ('RES')
263
    print(system.time(m <- match(rep("a", 2^31), "a")))# 52 sec user
263
    system.time(m <- match(rep("a", 2^31), "a")) # 34.7 sec user (55 elapsed)
264
    stopifnot(all(m == 1L))
264
    stopifnot(all(m == 1L))
265
    rm(m)
265
    rm(m)
266
    system.time({x <- character(2^31); x[26:1] <- letters })
266
    system.time({x <- character(2^31); x[26:1] <- letters }) # 1.6 user | 9.4 elapsed
267
    system.time(m <- match(x, "a"))# 45 sec user
267
    system.time(m <- match(x, "a"))# 18.2 user | 51.6 elapsed
268
    print(head(m, 40))
268
    head(m, 30)
269
    system.time(stopifnot(m[26] == 1L, is.na(m[-26])))
269
    system.time(stopifnot(m[26] == 1L, is.na(m[-26])))
270
    rm(x, m)
270
    rm(x, m)
271
}
271
})
272
 
272
 
273
 
273
 
274
gc() # NB the "max used"
274
gc() # NB the "max used"
275
proc.time() # total
275
proc.time() # total  [ ~ 40 minutes in full case, 2019-04-12]