Trimmed monorepo checkout (fluxer_desktop + packages/voice_engine_v2 + tools/ci) with a "Connect to a Different Server" menu item and popout that lets the desktop app switch to any self-hosted Fluxer instance, plus fixes for well-known discovery on single-domain self-hosted deployments and a false-positive ERR_ABORTED on same-origin client redirects during the switch. Defaults to chat.fluxr.chat and uses an isolated userData directory from the official build.
67 lines
2.2 KiB
Rust
67 lines
2.2 KiB
Rust
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
use std::hint::black_box;
|
|
|
|
use criterion::{Criterion, criterion_group, criterion_main};
|
|
use fluxer_mac_screen_capture::audio_pool::{
|
|
MAC_AUDIO_POOL_CAP, MAX_FRAME_BYTES_PER_SLOT, MacAudioFramePool,
|
|
};
|
|
|
|
fn bench_acquire_write_release_960_floats(c: &mut Criterion) {
|
|
let pool = MacAudioFramePool::new(MAC_AUDIO_POOL_CAP, MAX_FRAME_BYTES_PER_SLOT)
|
|
.expect("pool must build");
|
|
let payload = vec![0xCC_u8; 960 * 4];
|
|
c.bench_function("audio_pool/acquire_write_release/960_floats", |b| {
|
|
b.iter(|| {
|
|
let mut slot = pool
|
|
.try_acquire()
|
|
.expect("steady state single-thread never starves");
|
|
slot.write(&payload).expect("write fits");
|
|
black_box(slot.data_slice().len());
|
|
drop(slot);
|
|
});
|
|
});
|
|
assert_eq!(pool.stats().in_flight, 0);
|
|
}
|
|
|
|
fn bench_acquire_release_only(c: &mut Criterion) {
|
|
let pool = MacAudioFramePool::new(MAC_AUDIO_POOL_CAP, MAX_FRAME_BYTES_PER_SLOT)
|
|
.expect("pool must build");
|
|
c.bench_function("audio_pool/acquire_release", |b| {
|
|
b.iter(|| {
|
|
let slot = pool.try_acquire().expect("slot");
|
|
black_box(slot.slot_index());
|
|
});
|
|
});
|
|
assert_eq!(pool.stats().in_flight, 0);
|
|
}
|
|
|
|
fn bench_acquire_write_into_external_parts(c: &mut Criterion) {
|
|
let pool = MacAudioFramePool::new(MAC_AUDIO_POOL_CAP, MAX_FRAME_BYTES_PER_SLOT)
|
|
.expect("pool must build");
|
|
let payload = vec![0xCC_u8; 960 * 4];
|
|
c.bench_function(
|
|
"audio_pool/acquire_write_into_external_parts/960_floats",
|
|
|b| {
|
|
b.iter(|| {
|
|
let mut slot = pool
|
|
.try_acquire()
|
|
.expect("steady state single-thread never starves");
|
|
slot.write(&payload).expect("write fits");
|
|
let (ptr, len, owned) = slot.into_external_parts();
|
|
black_box((ptr, len));
|
|
drop(owned);
|
|
});
|
|
},
|
|
);
|
|
assert_eq!(pool.stats().in_flight, 0);
|
|
}
|
|
|
|
criterion_group!(
|
|
benches,
|
|
bench_acquire_write_release_960_floats,
|
|
bench_acquire_release_only,
|
|
bench_acquire_write_into_external_parts,
|
|
);
|
|
criterion_main!(benches);
|