Big caching of hashing, sorting, ordering
Functions to create cache that accelerates many operations
hashcache(x, nunique=NULL, ...) sortcache(x, has.na = NULL) sortordercache(x, has.na = NULL, stable = NULL) ordercache(x, has.na = NULL, stable = NULL, optimize = "time")
x |
an atomic vector (note that currently only integer64 is supported) |
nunique |
giving correct number of unique elements can help reducing the size of the hashmap |
has.na |
boolean scalar defining whether the input vector might contain |
stable |
boolean scalar defining whether stable sorting is needed. Allowing non-stable may speed-up. |
optimize |
by default ramsort optimizes for 'time' which requires more RAM, set to 'memory' to minimize RAM requirements and sacrifice speed |
... |
passed to |
The result of relative expensive operations hashmap
, ramsort
, ramsortorder
and ramorder
can be stored in a cache in order to avoid multiple excutions. Unless in very specific situations, the recommended method is hashsortorder
only.
x
with a cache
that contains the result of the expensive operations, possible together with small derived information (such as nunique.integer64
) and previously cached results.
Note that we consider storing the big results from sorting and/or ordering as a relevant side-effect, and therefore storing them in the cache should require a conscious decision of the user.
Jens Oehlschlägel <Jens.Oehlschlaegel@truecluster.com>
x <- as.integer64(sample(c(rep(NA, 9), 1:9), 32, TRUE)) sortordercache(x)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.