@blue а нафига для очереди двусвязный список, если она отлично покрывается кольцевым буфером?
https://doc.rust-lang.org/std/collections/struct.VecDeque.html
Top-level
@blue а нафига для очереди двусвязный список, если она отлично покрывается кольцевым буфером? https://doc.rust-lang.org/std/collections/struct.VecDeque.html 10 comments
@blue как минимум тем, что кольцевой буфер не раскидан по памяти как невезучий сапёр, и лучше влезает в кеш процессора @blue вообще, дока раста по выбору подходящей коллекции говорит следующее Используйте двусвязный список если.. @blue VecDeque это собственно кольцевой буффер и есть. Реаллокации не настолько тормознутые, и вот не при сравнении со связными списками говорить о фрагментации. @blue собственно, почему я говорю про скорость. Недавно сцепились с человеком, который утверждал, что фильтровать связный список быстрее, потому что он не реаллоцируется Двусвязный список проиграл, более чем в три раза :blobcatgooglytrash: @blue а, ещё в процессе тестирования он, в отличие от вектора вылетел в своп @blue к тому же, кольцевой буфер в целом занимает меньше памяти. Единственное, в чем список лучше — нет амортизации. То есть перформанс будет в среднем значительно хуевее, но без скачков |
@mo нафига для очереди кольцевой буфер если она прекрасно обрабатывается списком?