qsave_fd | R Documentation |
Saves an object to a file descriptor.
qsave_fd(x, fd,
preset = "high", algorithm = "zstd", compress_level = 4L,
shuffle_control = 15L, check_hash=TRUE)
x |
The object to serialize. |
fd |
A file descriptor. |
preset |
One of |
algorithm |
Ignored unless |
compress_level |
Ignored unless For lz4, this number must be > 1 (higher is less compressed). For zstd, a number between |
shuffle_control |
Ignored unless |
check_hash |
Default |
This function serializes and compresses R objects using block compression with the option of byte shuffling.
The total number of bytes written to the file (returned invisibly).
There are lots of possible parameters. To simplify usage, there are four main presets that are performant over a large variety of data:
"fast"
is a shortcut for algorithm = "lz4"
, compress_level = 100
and shuffle_control = 0
.
"balanced"
is a shortcut for algorithm = "lz4"
, compress_level = 1
and shuffle_control = 15
.
"high"
is a shortcut for algorithm = "zstd"
, compress_level = 4
and shuffle_control = 15
.
"archive"
is a shortcut for algorithm = "zstd_stream"
, compress_level = 14
and shuffle_control = 15
. (zstd_stream
is currently
single-threaded only)
To gain more control over compression level and byte shuffling, set preset = "custom"
, in which case the individual parameters algorithm
,
compress_level
and shuffle_control
are actually regarded.
The parameter shuffle_control
defines which numerical R object types are subject to byte shuffling. Generally speaking, the more ordered/sequential an
object is (e.g., 1:1e7
), the larger the potential benefit of byte shuffling. It is not uncommon to improve compression ratio or compression speed by
several orders of magnitude. The more random an object is (e.g., rnorm(1e7)
), the less potential benefit there is, even negative benefit is possible.
Integer vectors almost always benefit from byte shuffling, whereas the results for numeric vectors are mixed. To control block shuffling, add +1 to the
parameter for logical vectors, +2 for integer vectors, +4 for numeric vectors and/or +8 for complex vectors.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.