我正在尝试覆盖数据包的有效负载。我目前有以下代码,它可以工作,但是通过perf进行基准测试表明,克隆每个数据包的有效负载会产生很大的开销。不进行克隆的最佳方法是什么?如果效率更高,我不怕不安全。
struct Packet {
buffer: [u8; 1613],
}
impl Packet {
fn new() -> Self {
Self {
buffer: [0; 1613],
}
}
fn clone_into_buffer(&mut self, src: &[u8; 1613]) {
self.buffer.clone_from_slice(src);
}
}
fn main() {
let mut packet = Packet::new();
packet.clone_into_buffer(&[1; 1613]);
}