Size: a a a

2020 March 19

AK

Aleksey Kluchnikov in ErlangRus
заочередить надо пару милионов элементов
источник

VS

Vladimir Sekisov in ErlangRus
не стоит,
это же простая очередь
из двух списков
источник

AK

Aleksey Kluchnikov in ErlangRus
Надо поискать варианты..
источник

AK

Aleksey Kluchnikov in ErlangRus
Vladimir Sekisov
не стоит,
это же простая очередь
из двух списков
Не стоит использовать queue или не стоит использовать что то другое? :)
источник

AK

Aleksey Kluchnikov in ErlangRus
дока говорит O(1) сложность на основные операции
источник

AK

Aleksey Kluchnikov in ErlangRus
то что нужно
источник

СИ

Сергей Иванов in ErlangRus
Aleksey Kluchnikov
то что нужно
ты не уточнил скорость чего тебя интересует
источник

AK

Aleksey Kluchnikov in ErlangRus
Да всего, в том числе расходы на хранение ее в стейте
источник

ММ

Михаил Малюк in ErlangRus
так это на вставку в очередь наверное и на извлечение
источник

AK

Aleksey Kluchnikov in ErlangRus
Да, FIFO
источник

VS

Vladimir Sekisov in ErlangRus
дело вкуса, конечно,
но это классическая очередь Окасаки из двух списков,
если не смущает, что периодически будет делаться
реверс списка на 500 тыс элементов, то почему бы и нет
источник

ММ

Михаил Малюк in ErlangRus
а все, что между запросто может быть хоть квадратичным, хоть факториальным
источник

ММ

Михаил Малюк in ErlangRus
Vladimir Sekisov
дело вкуса, конечно,
но это классическая очередь Окасаки из двух списков,
если не смущает, что периодически будет делаться
реверс списка на 500 тыс элементов, то почему бы и нет
и вот этот реверс будет саааавсем не О(1)
источник

AK

Aleksey Kluchnikov in ErlangRus
Vladimir Sekisov
дело вкуса, конечно,
но это классическая очередь Окасаки из двух списков,
если не смущает, что периодически будет делаться
реверс списка на 500 тыс элементов, то почему бы и нет
Нет.. это смущает
источник

AK

Aleksey Kluchnikov in ErlangRus
Но судя по доке все окей, реверсы только на _r функции. А альтернативы какие есть?
источник

LL

Lama Lover in ErlangRus
Aleksey Kluchnikov
кто нибудь работал с queue структурой, которая из одноименного модуля?
Как она по скорости? Или что то другое надо использовать для FIFO
Нормально работает.
Суть в том, что не совсем стабильно. Если долго класть в очередь, а потом вытащить два элемента, то это будет работать долго, потому что будет разворачиваться список положенных элементов.
источник

LL

Lama Lover in ErlangRus
Это классическая реализация персистентой очереди, только первый элемент (по порядку очереди) всегда лежит во втором стеке
источник

AK

Aleksey Kluchnikov in ErlangRus
ок, спасибо, большое крамолы похоже нет, попробую
источник

SP

Sergey Prokhorov in ErlangRus
У нее амортизированная сложность O(1). Но да, время от времени будет случаться llists:reverse для всей (половины?) очереди. Т.е. latency spike и много мусора в heap от reverse
источник

СИ

Сергей Иванов in ErlangRus
Sergey Prokhorov
У нее амортизированная сложность O(1). Но да, время от времени будет случаться llists:reverse для всей (половины?) очереди. Т.е. latency spike и много мусора в heap от reverse
а мусор  (фрагментация?) от reverse почему? перелинковка же
источник