有没有办法使用std::io :: Write
将流直接写入内存,而不是在开始时预先分配最终内存或在写入时可能重新分配整个数组?
虽然Vec
实现了Write
,但这需要连续的内存,并且我认为可能会像常规向量调整大小一样重新分配。
Rust的stdlib
是否支持这样的功能,还是需要实现它?
我想要写入可能达到多个GiB的内存。这个内存可能是碎片化的,也有可能没有我需要的连续区域大小。相反,分配许多块(可能是固定的2的幂次大小)并在需要时分配更多块是非常高效的。
完成后,您可以读取数据,压缩内存中的块,将一些缓存到磁盘上,与先前的写入进行二进制差异以去重块等等。
std::io::Write
зҡ„е®һзҺ°жқҘж»Ўи¶ідҪ зҡ„йңҖжұӮпјҢжүҖд»ҘжҲ‘и®ӨдёәдҪ йңҖиҰҒиҮӘе·ұе®һзҺ°е®ғгҖӮ - Chris EmersonWrite
特质以满足你的需求非常容易,例如使用Vec<Vec<u8>>
。 - user4815162342