Data is reported in bytes per second when using a single ADC unit and two A/D channels. When each channel is measured with 4,000 samples per second the ADC is running at 8,000 samples per second as it multiplexes between the two channels.
The maximum sampling frequency depends on the ESP32 model.
The older ESP32 models can convert up to 2 Million samples per second, however there is discrepancy between the expected and effective throughput of about 20%.
The library creates int16_t datatype which is 2 bytes per sample.
SPS : expected, measured
150: error, sample rate eff: 300, range: 611 to 83,333
306: 1,224, 1,000
4,000: 16,000, 16,000
8,000: 32,000, 32,000
11,025: 44,100, 44,000
16,000: 64,000, 64,000
20,000: 80,000, 80,000
22,050: 88,200, 89,000
40,000: 160,000, 161,000
44,100: error, sample rate eff: 88,200, range: 611 to 83,333
Data: bytes per second, single unit, two channels
SPS/CH expected, measured % of expected
5000: error, sample rate eff: 10000, range: 20000 to 2000000
10000: 40,000, 32,000
22050: 88,200, 72,000
44100: 176,400, 144,000
88200: 352,800, 157,000
500000: 2,000,000, 1,635,000
1000000: 4,000,000, 3,271,000
Data: bytes per second, single unit, two channels
SPS : expected, measured 80% of expected
5000: error, sample rate: 5000, range: 10000 to 1000000
10000: 40,000, 32,000
20000: 80,000, 64,000
22050: 88,200, 72,000
44100: 176,400, 144,000
48000: 192,000, 156,000
88200: 352,800, 288,000
96000: 384,000, 313,000
176400: 705,600, 576,000
192200: 768,800, 628,000
352800: 1,411,200, 1,153,000
384000: 1,536,000, 1,256,000
500000: 2,000,000, 1,635,000
1000000: 4,000,000, 3,271,000
1500000: error, sample rate: 1500000, range: 10000 to 1000000