Пытаясь написать оптимизированный алгоритм DSP, я задавался вопросом об относительной скорости между выделением стека и распределением кучи, а также ограничениями размера массивов, выделенных стеком. Я понимаю, что существует ограничение на размер кадра стека, но я не понимаю, почему следующие запуски генерируют кажущиеся реалистичными результаты тестов с cargo bench
, но не работают с переполнением стека при запуске с cargo test --release
.
#![feature(test)]
extern crate test;
#[cfg(test)]
mod tests {
use test::Bencher;
#[bench]
fn it_works(b: &mut Bencher) {
b.iter(|| { let stack = [[[0.0; 2]; 512]; 512]; });
}
}