Size: a a a

Clojure — русскоговорящее сообщество

2021 February 10

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
то дедупе будет быстрее 😊
(let [path (into [] (take 1000000 (repeatedly #(rand-int 100))))
       x 101
       a (time (cond-> path
                 (nil? (some #(== x %) path)) (conj x)))

       b (time (into [] (dedupe) (conj path x)))])
"Elapsed time: 62.1621 msecs"
"Elapsed time: 43.835101 msecs"
особая трансдюсерная магия!
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Иван Федоров
А кто-то видел, кстати какую-то таблицу с бенчем разных функ?
как ты себе представляешь такую табличку?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
как ты себе представляешь такую табличку?
ну, например, если говорить про сравнение поиска совпадения через сет или через равенство — результат зависит от числа элементов сета

просто надо представлять алгоритм за той или иной функцией и тогда более менее понятно, какой алгоритм быстрее, какой медленнее
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
а что если так?
(defn add-to-vec [values value]
 (let [size (count values)]
   (loop [i 0
          found false
          acc (vector)]
     (if (= i size)
       (if (false? found)
         (conj acc value)
         acc)
       (let [x (nth values i)]
         (recur (inc i) (or found (= x value)) (conj acc x)))))))
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Sergey Trofimov
как ты себе представляешь такую табличку?
Огромная табличка которая говорит сколько времени занимает каждая функа на каком инпуте и железе. Ну железо одно. Для каждой функи строчка, затем для каждого размера входных данных колонка.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Иван Федоров
Огромная табличка которая говорит сколько времени занимает каждая функа на каком инпуте и железе. Ну железо одно. Для каждой функи строчка, затем для каждого размера входных данных колонка.
а не проще ли на ходу проверить?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
с конкретными данными
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Dos
1 или 2 или 3 или ваш вариант?
sorted-set?
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
а не проще ли на ходу проверить?
Я просто спросил кто видел
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Иван Федоров
Огромная табличка которая говорит сколько времени занимает каждая функа на каком инпуте и железе. Ну железо одно. Для каждой функи строчка, затем для каждого размера входных данных колонка.
знаешь такую табличку для какого-нибудь языка?
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Sergey Trofimov
знаешь такую табличку для какого-нибудь языка?
Пока нет
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Sergey Trofimov
знаешь такую табличку для какого-нибудь языка?
А, для lodash же есть
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
тогда странно ожидать такую табличку для кложи 😊
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Dos
1 или 2 или 3 или ваш вариант?
еще есть ordered set отдельной библиотечкой в clj-commons
источник

RS

Roma S in Clojure — русскоговорящее сообщество
ну есть всякие таблички с таймкопмлексити для разных стдлиб (например вот жава https://gist.github.com/iSergius/e06963c6eca0a639023666097227427c)
источник

RS

Roma S in Clojure — русскоговорящее сообщество
Roma S
ну есть всякие таблички с таймкопмлексити для разных стдлиб (например вот жава https://gist.github.com/iSergius/e06963c6eca0a639023666097227427c)
можно из них генерировать таблицы брадиса для "разного железа" и n :D
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
ordered-set это когда сортировка по значению (функции), но не по порядку, если не ошибаюсь
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
вон у нас дискуссия была про перформанс иммутабельных структур данных
я взял те бенчмарки 2016 года, выкинул ненужные тесты, прогонял 10 часов и получил неведомую хрень 😊
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ivan Grishaev
ordered-set это когда сортировка по значению (функции), но не по порядку, если не ошибаюсь
Это sorted-set, ordered-set гарантирует сохранение порядка в порядке вставки
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
а по функции это sorted-set-by
источник