Skip to content

Huge overhead #32

@faku99

Description

@faku99

Hello,
We are interested in using DigitalRF in one of our professional projects. This project focuses on receiving RF data over multiple 10 Gbps connections.

Beforehand, we ran some benchmarks in order to measure the overhead introduced by several compression/storage solutions. DigitalRF is one of them.
The benchmark consists of the following steps: n TCP servers listen on n different ports and each waits for a TCP client to connect. Once connected, the client sends random data. On reception, the server either writes the data on disk using the pwritev() function or passes the data to some third-party library (i.e. DigitalRF, HDF5, zstd).

Here are the results we measured:

Setup n = 1 [Gbps] n = 4 [Gbps]
pwritev() (baseline) 19.314 35.481
DigitalRF w/o compression 2.786 1.857
DigitalRF w/ zlib 1.666 1.323
DigitalRF w/ zstd 5.926 1.420
HDF5 w/o compression 21.925 33.957
HDF5 w/ zlib 24.407 22.431
HDF5 w/ zstd 23.779 21.883
zstd + pwritev() 4.658 12.276

Note: when compressing the data, we always used 1 as the compression level.

As you can see, DigitalRF introduces a HUGE overhead. Moreover, it seems that the performances are not consistent; we observed values going from 0.5 Gbps to 6 Gbps (using a single thread).

  • Did you run some performance benchmark? If so, did you observe anything similar?
  • And have you any idea from where this overhead could come from? We are willing to participate in the improvement of DigitalRF!

Lucas

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions